【转】玩转 XPath 和缺省命名空间(Default Namespaces)

本文探讨了XPath查询在处理XML文档时遇到的命名空间问题,尤其是缺省命名空间。通过实例解释了如何在Jaxen、JAXP XPathFactory和XSLT中设置"前缀-命名空间"映射,以便正确查询属于特定命名空间的元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文出自:http://www.edankert.com/defaultnamespaces.html
翻译文出自:http://wakan.blog.51cto.com/blog/59583/7220
诸如“为什么用 XPath 的表达式进行查询,却没有返回所期望的结果?”的问题通常都与命名空间(NameSpace)有关,而且绝大多数是与缺省命名空间(Default Namespace)有关。本文试图解释这个问题并针对三种流行的 XPath 实现给出解决方法:Jaxen、JAXP XPPathFactory 以及 XSLT。
内容列表
问题描述
“前缀-命名空间”映射
Jaxen 和 Dom4J
Jaxen 和 XOM
Jaxen 和 JDOM
JAXP XPathFactory
XSLT
结束语
资源

问题描述
看下述 XML:

<catalog>
<cd>
    <artist>Sufjan Stevens</artist> 
    <title>Illinois</title> 
    <src>http://www.sufjan.com/</src> 
</cd> 
<cd> 
    <artist>Stoat</artist> 
    <title>Future come and get me</title>
    <src>http://www.stoatmusic.com/</src> 
</cd> 
<cd> 
    <artist>The White Stripes</artist> 
    <title>Get behind me satan</title> 
    <src>http://www.whitestripes.com/</src> 
</cd> 
</catalog> 

    你可以使用“//cd”来得到没有在任何命名空间中定义的“cd”节点。

    现在让我们来改造这个 XML,让它的所有元素都属于 'http://www.edankert.com/examples/' 命名空间中。
 &nb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值