Xmlnodereaderが読むXmlWriterにエンティティリファレンス(Eg )を書き出す方法は?

StackOverflow https://stackoverflow.com/questions/4056181

質問

バックグラウンド
読者とライターを使用してXMLドキュメントを読み取り、書いています。読み取り操作と書き込み操作の間にロジックをフィルタリングして、どの部分を書き戻すべきかを判断します(事実上、いくつかのタグを取り除きます)...

現在の実装の選択は次のとおりです。 xmlnodereader, xmlwriterxmlnodetype

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の適格な名前を取得します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top