原文出自: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