Xml xpath如何基于子对象选择父对象
我的XML结构如下所示:Xml xpath如何基于子对象选择父对象,xml,xpath,Xml,Xpath,我的XML结构如下所示: <A> <B> <C> <D> <E>1</E> <F>123</F> </D> <D> <E>1</E>
<A>
<B>
<C>
<D>
<E>1</E>
<F>123</F>
</D>
<D>
<E>1</E>
<F>153</F>
</D>
</C>
<C>
<D>
<E>1</E>
<F>134</F>
</D>
</C>
</B>
<B>
<C>
<D>
<E>2</E>
<F>133</F>
</D>
</C>
<C>
<D>
<E>2</E>
<F>134</F>
</D>
</C>
</B>
</A>
1.
123
1.
153
1.
134
2.
133
2.
134
我想知道是否有可能得到所有的“B”元素(以及它的内容),其中F元素有特定的值,在本例中是134。但是,我不想同时获得其他C元素-因此对于本例,我希望获得:
<A>
<B>
<C>
<D>
<E>1</E>
<F>134</F>
</D>
</C>
</B>
<B>
<C>
<D>
<E>2</E>
<F>134</F>
</D>
</C>
</B>
</A>
1.
134
2.
134
这可能吗?我一直在使用xpath,但我得到的唯一东西是B元素,它的内容(不仅是所需的F元素)具有以下xpath:
//D[F=134]/parent::C/parent::B
提前谢谢大家,,
Marcin如果您在B元素级别进行选择(不管您对子元素有什么其他条件),您将始终获得B元素的全部内容
另一个选项是在C元素级别选择相反的条件(F!=134)并删除这些节点。不过,这取决于您的具体场景。如果您真的不想使用
XPath
选择节点,您可能需要使用XSLT
转换文档。你觉得我应该把所有的都循环一下,然后把我需要的打印出来吗?我想我会先选择它们,然后打印出来,从来没有想过用不同的方式:)