代码之家  ›  专栏  ›  技术社区  ›  John K

如何将EntityReference(例如)写出给xmlWriter,由xmlNodeReader读取?

  •  2
  • John K  · 技术社区  · 14 年前

    背景
    我正在使用读写器读写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 article that indicates entity references are somewhat special while parsing 但是我不能用它来解决问题。它在细节上似乎很少——我希望有一个代码示例来补充它。

    1 回复  |  直到 14 年前
        1
  •  1
  •   John K    14 年前

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

    希望这有帮助!!

    XML阅读器.name 财产
    在派生类中重写时,获取 当前的限定名称 node.node.节点。