1

XPath "/ Tier1 / Tier2 / Setting [Name = aUniqueName]/theValue"を持つ値を返したいとします。

XDocumentを使用しているのでlinqを使用できますが、適切なエラーチェックでこの値を取得する簡単な方法はありますか?私が考えることができるのは、各層を取得し、各層がnullでないことを確認してから、次の層に進んで繰り返すことです。これは、XmlDocumentで1行のXPathを使用するよりもはるかに手間がかかるようです。

4

2 に答える 2

4

で XPath を使用できますXDocumentXPathSelectElementsメソッドを使用します。

于 2012-12-02T23:40:21.980 に答える
1

これがあなたのためにそれをするLINQクエリです:

var query =
    from t2 in xd.Root.Elements("Tier2")
    from s in t2.Elements("Setting")
    where s.Attributes("Name").Any(a => a.Value == "aUniqueName")
    select s.Value;

これは、ドキュメント構造が次のようになっていることを前提としています。

<Tier1>
    <Tier2>
        <Setting Name="aUniqueName">theValue</Setting>
    </Tier2>
</Tier1>
于 2012-12-03T00:03:23.807 に答える