-2

私は以下のようなXMLを持っています:

<Nodes>
  <Node>
    <A>This is a dummy text {12345}</A>
    <B>Output Value</B>
  </Node>
  <Node>
    <A>This is another dummy text {3462832}</A>
    <B>Output Value</B>
  </Node>
</Nodes>

Linq to XMLを使用していて、ノード「A」のテキストにキー「12345」が含まれている場合は、ノード「B」の出力値を選択したい

これを実現するために使用する必要があるLINQクエリの入力を入力してください。

ありがとう !!

4

2 に答える 2

3

これはまさにあなたが望むことをします: -

var nodes = from n in xml.Descendants("Node")
                         .Where(x => x.Element("A").Value.Contains("12345")) 
            select n.Element("B").Value;

XML サンプル: -

<?xml version="1.0" encoding="utf-8"?>
<Nodes>
    <Node>
        <A>This is a dummy text {12345}</A>
        <B>Output Value</B>
    </Node>
    <Node>
        <A>This is a dummy text {12345}</A>
        <B>Output Value 2</B>
    </Node>
    <Node>
        <A>This is another dummy text {3462832}</A>
        <B>Output Value</B>
    </Node>
</Nodes>

戻ります: -

Output Value Output Value 2

于 2013-03-19T12:33:07.037 に答える
0

または、LINQ と XPath を使用して 1 行で:

XDocument xdoc = XDocument.Load(path_to_xml);
var b = (string)xdoc.XPathSelectElement("//Node[contains(A,'12345')]/B");

これは、条件に一致する最初に見つかった要素の値を返します。すべての一致が必要な場合は、代わりにXPathSelectElementsを使用してください。

于 2013-03-19T12:39:23.580 に答える