我不确定这样做是否可行,因为我正试图让XPath返回XML,但是我有一个示例文件:
<?xml version="1.0" encoding="utf-8"?>
<items xmlns="http://www.examples.com/itemsns">
<item id="1" type="blue">
<name>Item 1</name>
</item>
<item id="2" type="red">
<name>Item 2</name>
</item>
<item id="3" type="red">
<name>Item 3</name>
</item>
</items>
我正尝试返回整个元素以供参考。客户端希望能够查看元素的原始XML,以对可能返回错误或不完整数据的XPath查询进行故障排除。
目标是让XPath以其原始形式返回整个元素:
<item id="2" type="red">
<name>Item 2</name>
</item>
在单个XPath查询中甚至有可能吗?
谢谢!
答案 0 :(得分:1)
XPath表达式选择源文档中的节点,并返回对这些节点的引用。所以是的,您可以返回整个节点。实际上,您不能返回部分节点。
现在,您显示为输出的不是节点,而是将节点序列化为词法XML。如果这就是您想要的,那么XPath无法交付它-至少要等到提供serialize(node)
函数的XPath 3.1才能交付。在较早的发行版中,如果应用程序希望序列化节点,则它必须找到实现该目标的其他方法。大多数树模型(DOM,JDOM等)都提供了一些简单的序列化节点的方法,但是详细信息取决于您的宿主语言和树模型。