XMLSpy XPath查询工具中XPath 3.1的命名空间声明方法
XMLSpy中XPath 3.1查询命名空间XML的方法
在XMLSpy底部的XPath查询工具中测试带命名空间的XML时,XQuery 3.1可以通过声明命名空间前缀来查询,但切换到XPath 3.1时直接写路径会失效,下面是具体解决方法:
示例XML
<?xml version="1.0" encoding="UTF-8"?> <Level1> <Level2> <Data xmlns="http://www.myns.com"> <Text>test</Text> </Data> </Level2> </Level1>
一、XQuery 3.1的查询方式(已掌握)
直接在查询开头声明命名空间前缀,再用前缀访问节点:
declare namespace myns="http://www.myns.com"; //Level1/Level2/myns:Data
二、XPath 3.1的两种解决方法
方法1:通过XMLSpy工具界面绑定命名空间前缀
- 确保查询面板的语言选择为XPath 3.1
- 找到查询面板中的「命名空间绑定」区域(通常是带有「Namespace」字样的按钮或输入栏)
- 添加一条绑定规则:
- 前缀:
myns - 命名空间URI:
http://www.myns.com
- 前缀:
- 之后直接使用带前缀的XPath表达式即可:
//Level1/Level2/myns:Data
方法2:使用XPath 3.1的QName内联语法
不需要提前绑定前缀,直接在表达式中用Q{命名空间URI}的形式指定节点的命名空间:
//Level1/Level2/Q{http://www.myns.com}Data
内容的提问来源于stack exchange,提问作者Sebastien
相关产品推荐
相关产品推荐

