XPath的扩展名问题?

winzhen 2003-11-18 10:50:46
在xpath中,节点测试用以指定节点类型和定位阶所选择的节点的 扩展名,扩展名用命名空间的 URI:本地名称 组成。那么下面的xml文档应该怎么定位呢?

<x:book xmlns:x="http://www.xmmmm.com/">
<x:title>the book</x:title>
<x:price>24</x:price>
</x:book>

如果当前上下文节点是<x:book>元素节点,定位 x:title 是不是写作
child::http://www.xmmmm.com/:title ?
还是写作其他的形式?
迫切希望得到解答!
...全文
73 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
winzhen 2003-11-19
  • 打赏
  • 举报
回复
谢谢!
提这个问题,是因为我在《xml高级编程》上面看到的这么一段话,不是十分明白,
它这么说:
“如果要对一个文档进行转换,它的根元素起始标记包括了如下所示的一个命名空间的声明:
<ecxml:invoice xmlns:ecxml="http://www.ecxml.com/e-commerce/">
那么表示<ecxml:invoice>元素的扩展名如下所示:
http://www.ecxml.com/e-commerce/:invoice
尽管没有定义用于显示扩展名的转换,但有效产品使用"^"将命名空间的URI和本地名称分割开。
因此XPath处理器实际上使用命名空间URI而不是命名空间的前缀。”

yangjuanli 2003-11-19
  • 打赏
  • 举报
回复
同意AprilChen(babysky) !!
AprilChen 2003-11-18
  • 打赏
  • 举报
回复
child::http://www.xmmmm.com/:title 这个好象不行,改为child::x:title是可以的.
另外为什么这么复杂呢?用x:title不就搞定了吗!
<?xml version = "1.0" encoding = "UTF-8"?>
<xsl:transform xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" xmlns:x = "http://www.xmmmm.com/" version = "1.0">
<xsl:template match = "x:book">
<xsl:element name = "test">
<xsl:value-of select = "x:title"/>
</xsl:element>
</xsl:template>
</xsl:transform>

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧