我无法以编程方式导航XML doc,我需要一个单行XPath解决方案,原因我最后描述的原因。
我正在使用类似下面的XML架构。 (这是我必须按原样使用的。)
<Root>
<!-- Child 1 -->
<Child>
<Name>Joe</Name>
<Age>12</Age>
</Child>
<!-- Child 2 -->
<Child>
<Name>Mike</Name>
<Age>25</Age>
</Child>
<!-- Child 3 -->
<Child>
<Name>Jane</Name>
<Age>20</Age>
</Child>
</Root>
假设我已经在“Joe”节点(即Child 1中的Name元素),我需要定义一个XPath查询,它将“包装”该节点,如下所示:
<Root>
<!-- Child 1 -->
<Child>
<Name>Joe</Name>
<Age>12</Age>
</Child>
</Root>
我尝试过各种祖先,字符串连接,concat等组合,但似乎找不到正确“包装”元素的解决方案。 (我使用祖先的方式是返回所有子节点,例如,这不是我需要的。)
其他一些注意事项:
注意:对于它的价值,我实际上无法以编程方式导航XML。我正在使用一个库(其代码我无法更改),其中我必须根据配置文件中的单行XPath查询来定义所有内容。它基本上会导航所有的Name元素,所以我的解决方案必须从那一点开始工作。
答案 0 :(得分:1)
XPath是查询语言。
除其他外,这意味着评估XPath表达式永远不会修改XML文档。
所以答案是:使用仅 XPath无法修改XML文档或创建新文档。
使用XSLT指定此类转换非常简单和自然。