鉴于以下XML(具有许多层次结构级别),我需要在使用Hide“True”属性和特定名称过滤所有节点后返回节点。请注意,hide可以位于任何层次结构级别:
<items>
<item id="1" >
<item id="2" />
<item id="3" />
<item id="4" hide="true"/>
</item>
<item id="5" hide="true">
<item id="6" >
<item id="7">
<item id="8" hide="true"/>
<item id="9"/>
</item>
</item>
</items>
我需要回复:
<items>
<item id="1"">
<item id="2" />
<item id="3" />
</item>
<item id="6" >
<item id="7">
<item id="9"/>
</item>
</item>
</items>
然后将“已过滤的”XML分配给树视图,因此我需要保留节点的分层特性。我试过了:“item // item [@ hide ='false'或者不是(@hide)]”,但这会返回一个扁平化(以及重复的)数据,在较低级别重复节点推升到顶层如下。有没有办法使用Xpath来做我想要的?我知道我可以首先Xslt数据,然后显示它,但它似乎是一个更容易的方式。我正在使用c#/。net4.0 MSXML
<items>
<item id="1"">
<item id="2" />
<item id="3" />
</item>
<item id="6" >
<item id="7">
<item id="9"/>
</item>
</item>
<item id="2" />
<item id="3" />
<item id="7">
<item id="9"/>
</item>
<item id="9"/>
</items>