0
.Netフレームワークを使用して、XMLエンティティテキストを比較/マージ機能で使用する生の文字列値(文字エンティティは展開されていません)として読み込む必要があります。私が知る限り、文字エンティティの拡張を直接オフにする方法はありません。XmlTextReaderの文字エンティティの展開をオーバーライドする方法は?
私はXmlTextReaderクラスから派生して切片を読み込むんが、Valueプロパティは読み取り専用であり、私が入ってくるテキストを変更するのいずれかの方法を参照することはできません読む()メソッド、フック試してみた:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
namespace blah {
class XmlRawTextReader : XmlTextReader {
public XmlRawTextReader(string fileName) : base(fileName) { }
public override bool Read() {
bool result = base.Read();
if (result == true && base.HasValue && base.NodeType == XmlNodeType.Text) {
string s = this.Value;
//this.Value = @"new value"; // does not work - read-only
}
return result;
}
}
}
を
文字エンティティの展開を無効にする方法や文字列を読み込む方法を知っている人はいますか?
ちょっとアイデアを事前に感謝しますので、ここで立ち往生...
エンティティは意味的には拡張文字と同じものを意味するので、比較/マージに文字を使用し、必要に応じてテキスト/ xml? – erikxiv
'XmlReaderSettings'で' XmlReader.Create'を使ってみましたか? –