如何将 EntityReference(例如 )写入 XmlNodeReader 读取的 XmlWriter?

Posted

技术标签:

【中文标题】如何将 EntityReference(例如 )写入 XmlNodeReader 读取的 XmlWriter?【英文标题】:How to write out an EntityReference (e.g.  ) to an XmlWriter, read by XmlNodeReader? 【发布时间】:2010-10-29 21:53:34 【问题描述】:

背景 我正在使用读取器和写入器读取和写入 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】:

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

希望这会有所帮助!

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

【讨论】:

谢谢。一直很简单,但我看不到。我将 MSDN 文档的摘录粘贴到您的答案中,以便人们立即获得它。

以上是关于如何将 EntityReference(例如 )写入 XmlNodeReader 读取的 XmlWriter?的主要内容,如果未能解决你的问题,请参考以下文章

使用 EntityReference 查询问题

从 ASP.NET 网站序列化时“无法序列化 EntityReference 对象”,但在 ASP.NET Web 应用程序上工作正常

我如何在RealityKit中访问Reality Composer的模型组件?

节点标题作为视图中的选择列表

如何在 Python 中小写字符串?

序列化对象时如何强制杰克逊将数字写为字符串