背景
我正在读写使用读写器的XML文档,并在读写操作之间过滤逻辑以确定哪些部分读取应该被写回(有效地剥掉一些标签)。 ..如何写出一个EntityReference(例如 )到XmlWriter,由XmlNodeReader读取?
我实现的选择目前是以下使用: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,但我一直无法使用它向一个可行的解决方案。在细节上似乎很少 - 我宁愿有一个代码示例来补充它。
谢谢。它一直很简单,但我看不见它。我将MSDN文档的摘录粘贴到您的答案中,以便人们立即获得。 – 2010-10-29 22:24:44