Hi,
also ich hab ein XML-File, das so aussieht (Ausschnitt):
<nonshiftkeys>
<key type="scrollup" vkey="0">
<region>
<point x="228" y="6"/>
<point x="355" y="6"/>
<point x="355" y="53"/>
<point x="228" y="53"/>
<point x="228" y="6"/>
</region>
</key>
...
Ich will nun den Namen der Parentnode, wenn der Reader auf dem key-Tag steht.
Also dass ich dann wie hier z.B. nonshiftkeys erhalte.
Wie mache ich das ??
Habe es z.B. schonmal so versucht:
if (reader.Name == "key" && reader.HasAttributes)
{
XmlDocument xmlDoc = new XmlDocument();
XmlNode currentNode = xmlDoc.ReadNode(reader);
XmlNode parent = currentNode.ParentNode;
...
Nur kapier ich nicht, wieso die Property Parentnode immer null ist.
Der key-Tag hat doch eine direkte Parentnode !!??
Du erzeugst ein neues XmlDocument und kopierst lediglich das "key"-Element hinein. Das nonshiftkeys-Element ist in deinem Dokument nicht enthalten.
Das ist ja vielleicht ..., das ja im Prinzip keine Referenzen kopiert werden.
Ok und wie kann ich das dann lösen ?
Muss ja irgendwie gehn.
Wieso kopierst du das Element denn überhaupt in das XmlDocument?
Verwende:
* Entweder nur einen Reader, dann musst du dir halt die Parent-Informationen halt merken
* Oder nur ein XmlDocument
* Oder ein XPathDocument, wenn du nur lesen musst. Ist wesentlich schneller und RAM-freundlicher
Das da war nur ein Versuch. Hatte keinen Plan, wie ich das am besten lösen kann.
Die Sache mit dem Merken wird das Beste sein, da ich ja per Reader das File parse.
Schreiben will ich in das XML-File nicht, nur lesen.
Ok, ich werde mal deine Vorschläge durchprobieren und werd mich wieder melden.
Vielen Dank erstmal für die Hilfe ! 👍
ich würde mir das mal angucken vllt. hilft dir das 😉
Hey,
also habe es gelöst, in dem ich mir beim Parsen die jeweilige Node merke und im späteren Verlauf dann auswerte.
So funktioniert es bestens.
Vielen Dank für eure Hilfe !! 👍