Wie schreibe ich einem XMLWriter eine EntityReference (EG & nbsp;), die von XMLNodereader gelesen wurde?

StackOverflow https://stackoverflow.com/questions/4056181

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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top