背景
我正在讀寫使用讀寫器的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