In einem XML-Dokument zu finden, wie die folgenden:Wie Knoten vollständig zwischen zwei bestimmten Knoten
<root>
<fish value="Start"/>
<pointlessContainer>
<anotherNode value="Pick me!"/>
<anotherNode value="Pick me too!"/>
<fish value="End"/>
</pointlessContainer>
</root>
Wie kann ich das Wunder von LINQ to XML verwenden, um alle Knoten zu finden vollständig durch die fish
Knoten enthalten ? Beachten Sie, dass ich in diesem Beispiel die Knoten fish
absichtlich auf verschiedenen Ebenen im Dokument platziert habe, da ich davon ausgehe, dass dieses Szenario in der freien Wildbahn auftreten wird.
Offensichtlich würde ich in diesem Beispiel die beiden anotherNode
Knoten, aber nicht die pointlessContainer
Knoten suchen.
NB: die zwei "begrenzenden" Knoten können denselben Typ haben (z. B. fish
) wie andere nicht-begrenzende Knoten im Dokument, aber sie würden eindeutige Attribute haben und daher leicht zu identifizieren sein.
Könnte es Knoten geben, die * höher * im Baum sind als der "Start" -Knoten? –
Oh, meinst du, wenn die Start- und Endknoten auf verschiedenen Zweigen sind? Daran hatte ich nicht gedacht. Ich nehme an, technisch könnte es möglich sein. tbh Ich weiß nicht genug über diesen Geschmack von XML (WordML), um sicher zu sein. – David
Ich halte es für sehr unwahrscheinlich, obwohl mich nichts über MS Office-Formate überraschen würde. – David