.Netフレームワークを使用して、比較/マージ関数で使用するために、XMLエンティティテキストを生の文字列値(展開されていない文字エンティティ)として読み取る必要があります。私の知る限り、キャラクターエンティティの拡張を直接オフにする方法はありません。
XmlTextReaderから派生し、読み取りをインターセプトするRead()メソッドをフックしようとしましたが、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;
}
}
}
文字エンティティの展開を無効にする方法、または読み取った時点で文字列を更新する方法を知っている人はいますか?
ちょっとここで立ち往生しているので、事前にアイデアをありがとう...