0

XDocumentから要素を選択し、単一のラムダ式でそれぞれに属性を追加したいと思います。これは私が試していることです:

  xhtml.Root.Descendants()
            .Where(e => e.Attribute("documentref") != null)
            .Select(e => e.Add(new XAttribute("documenttype", e.Attribute("documentref").Value)));

これを行う正しい方法は何ですか?

ありがとう!

4

2 に答える 2

1

LINQ の遅延実行により、ステートメントの結果が繰り返されない場合、属性は XML に追加されません。

var elementsWithAttribute = from e in xhtml.Root.Descendants()
                            let attribute = e.Attribute("documentref")
                            where attribute != null
                            select e;

foreach (var element in elementsWithAttribute)
    element.Add(...);
于 2012-11-15T20:12:10.510 に答える
0
  xhtml.Root.Descendants()
            .Where(e => e.Attribute("documentref") != null)
            .ToList()
            .ForEach(e => e.Add( new.... ) );
于 2012-11-15T20:06:37.097 に答える