如何将一个EntityReference(例如)写入XmlWriter,由XmlNodeReader读取?

时间:2010-10-29 21:53:35

标签: c# .net xmlreader xmlwriter entityreference

背景
我正在使用读写器读取和编写XML文档,在读写操作之间使用过滤逻辑来确定应该将读取的部分写回(有效地将某些标记删除)...

我目前使用的选择如下:XmlNodeReaderXmlWriterXmlNodeType

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 article that indicates entity references are somewhat special while parsing,但我无法将其用于工作解决方案。细节似乎很少 - 我希望有一个代码示例来补充它。

1 个答案:

答案 0 :(得分:1)

您可以参考以下链接:http://msdn.microsoft.com/en-us/library/system.xml.xmlreader.name.aspx

希望这会有所帮助!!

  

XmlReader.Name 属性
  在派生类中重写时,获取   当前的限定名称   node.node。