Xmlnodereaderが読むXmlWriterにエンティティリファレンス(Eg )を書き出す方法は?
-
27-09-2019 - |
質問
バックグラウンド
読者とライターを使用して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の記事は、解析中にやや特別です, 、しかし、私はそれを実用的なソリューションに使用することができませんでした。詳細はまばらに見えます - 私はそれを補うためのコードサンプルがあることを望みます。
解決
このリンクを参照できます。 http://msdn.microsoft.com/en-us/library/system.xml.xmlreader.name.aspx
お役に立てれば!!
xmlreader.name 財産
派生クラスでオーバーライドされたら、現在のnode.nodeの適格な名前を取得します。
所属していません StackOverflow