Как записать EntityReference (например,) в XmlWriter, прочитанный XmlNodeReader? - PullRequest
2 голосов
/ 30 октября 2010

Справочная информация
Я читаю и пишу XML-документ, используя средства чтения и записи, с логикой фильтрации между операциями чтения и записи, чтобы определить, какие части чтения должны быть выписаны (фактически этоудаляет некоторые теги) ...

В настоящее время мой выбор реализации заключается в следующем: XmlNodeReader , XmlWriter и 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?
        }
    }
}

Проблема
Когда я сталкиваюсь со ссылкой на сущность с читателем, я получаю пустую строку "" в reader.Value, однако это действительно значение   в источнике XML, который имеетвстречались.Так что это обнаружено, но не доступно для меня, чтобы иметь.

Очевидно, что это особый или пограничный случай:
Я обнаружил следующую статью MSDN, которая указывает, что ссылки на сущности несколько особенные при синтаксическом анализе , но я не смогиспользуйте это к рабочему решению.Кажется, что деталей мало - я бы предпочел, чтобы в качестве дополнения был приведен пример кода.

1 Ответ

1 голос
/ 30 октября 2010

Вы можете ссылаться на эту ссылку: http://msdn.microsoft.com/en-us/library/system.xml.xmlreader.name.aspx

Надеюсь, это поможет !!

XmlReader.Name Свойство
При переопределении в производном классе получает полное имя текущего узла. Узел.

...