さまざまな変数でxmlファイルのさまざまな条件を使用してさまざまなノードの値を取得したいと思います。以下は例です
XDocument doc = XDocument.Load(@"D:\MyFiles\test.xml", LoadOptions.PreserveWhitespace);
var a = (from x in doc.Descendants("title")
select x).First().Value;
var b = (from y in doc.Descendants("label")
where y.Ancestors("sec").Any()
select y).First().Value;
var c = (from z in doc.Descendants("sec").Attributes("id")
select z).First().Value;
これを1行のコードで実行できますか、それとも冗長性の低い方法で実行できますか?
確かに、クエリ式を使用する必要はありません。ほとんどの場合、クエリ式が邪魔になっています。このコードは次のように単純になります。
XDocument doc = XDocument.Load(@"D:\MyFiles\test.xml",LoadOptions.PreserveWhitespace);
var a = doc.Descendants("title").First().Value;
var b = doc.Descendants("label").First(y => y.Ancestors("sec").Any()).Value;
var c = doc.Descendants("sec").Attributes("id").First().Value;
または、必要に応じてXPathを使用することもできます。(XPathSelectElements
、XPathEvaluateNode
など)は個人的に私はかかわらず、XMLにLINQが提供するクエリメソッドを使用して維持することを好みます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加