Wie schreibe ich einem XMLWriter eine EntityReference (EG & nbsp;), die von XMLNodereader gelesen wurde?
-
27-09-2019 - |
Frage
Hintergrund
Ich lese und schreibe ein XML -Dokument mit Leser und Schriftsteller mit der Filterlogik zwischen den Lese- und Schreibvorgängen, um zu bestimmen, welche Teile gelesen werden sollen (effektiv, einige Tags herausstreift) ...
Meine Implementierungswahl derzeit ist die folgende Verwendung: Xmlnodereader, XMLWriter und Xmlnodetype
using System.Xml;
// Read every node
using (XmlNodeReader reader = new XmlNodeReader(xmlFragment)) {
// But write out only nodes I want
using (XmlWriter writer = XmlTextWriter.Create(sb, writerSettings)) {
while (reader.Read()) {
//... with filtering logic here to choose what is to be written.
// I do want to write out all entity references
if (XmlNodeType.EntityReference == reader.NodeType)
; // but how do I do that here?
}
}
}
Problem
Wenn ich mit dem Leser auf eine Entitätsreferenz stoße, bekomme ich eine leere Zeichenfolge "" in reader.Value
Allerdings ist es wirklich ein
Wert in der XML -Quelle, die angetroffen wurde. Es wird also entdeckt, aber nicht für mich verfügbar.
Anscheinend ein Spezial- oder Kantenfall:
Ich fand Folgendes Der MSDN, aber ich konnte es nicht für eine Arbeitslösung verwenden. Die Details scheint spärlich zu sein - ich würde es vorziehen, dass es ein Code -Beispiel gibt, um es zu ergänzen.
Lösung
Sie können diesen Link verweisen: http://msdn.microsoft.com/en-us/library/system.xml.xmlreader.name.aspx
Hoffe das hilft!!
Xmlreader.name Eigentum
Wenn Sie in einer abgeleiteten Klasse überschrieben werden, erhalten Sie den qualifizierten Namen des aktuellen Knotens.node.