-1
私はXDocumentを構築しており、出力をテストするための単体テストがあります。私がテストしたいことの1つは、無効な文字列がXML用に適切にフォーマットされていることです。 XDoc自体の.ToString()を呼び出すと、XMLの無効な文字列が正しくフォーマットされることがわかりました。しかし、私のテストでは、特定の要素または属性をXDocから取り出して値をテストしています。これはXMLの値をフォーマットしません。これらの値をエスケープ形式で取得するにはどうすればよいですか?XMLエスケープ形式でXDocumentの要素値を取得するにはどうすればよいですか?
回答:(THXエド・プランケット)
myXDoc.Descendants("element2").First().FirstNode.ToString();
// result "Pork&Beans"
サンプル:
var xml =
"<element1>" +
"<element2>Pork&Beans</element2>" +
"</element1>";
var myXDoc = XDocument.Load(xml);
var xDocString = myXDoc.ToString();
// result is formatted - <element1> <element2>Pork&Beans</element2> </element1>
var element2Value = myXDoc.Decendents("element2").First().Value;
// result is unformatted - Pork&Beans
だから、明確にするために、あなたがフォーマットされていない形式のXML文字列全体をしたいですか? – Sach
'myXDoc.Descendants(" element2 ")。First()。ToString()'。ところで、あなたのサンプルコードはコンパイルする前に少しの作業が必要です。 –
要素のToString()を呼び出すと、 " Pork & Beans "が理想的ではありません。私は "ポーク&豆"を得ることを望んでいます。 –
Sevren