我的XML结构如下所示:
<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>
我想知道是否有可能获得所有“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>
这甚至可能吗?我一直在玩xpath,但我唯一得到的是B元素 all 其内容(不仅包含所需的F元素)以及xpath: // d [F = 134] /父:: C /父:: B
提前谢谢你, 马尔钦
答案 0 :(得分:0)
如果你在B元素级别选择(无论你对孩子有什么其他条件),你总是会得到B元素的全部内容。
另一种选择可能是在C元素级别选择反向条件(F!= 134)并删除这些节点。这取决于你的具体情况。