0

以下は私にとってはうまくいきます:

Xdoc.Element("session")
    .Element("immediate")
    .Element("pivot")
    .Element("axes")
    .Element("axis")
    .Element("attribute")
    .Element("selection")
    .Attribute("value")
    .SetValue("New_Value");

ドキュメントの先頭から始める必要がありますか? 子孫を使用できることはわかっていますが、要素を参照できませんか?

これを行う正しい方法は何ですか?XPathでは、次のようなことをしたでしょう

/*/*/*/*etc
4

1 に答える 1

0

あなたは次のように意味します:

var el = XElement.Parse("<session><immediate><pivot><axes><attribute><selection a=\"b\"/></attribute></axes></pivot></immediate></session>");
var sel = el.XPathSelectElement("immediate/pivot/axes/attribute/selection");
sel.SetAttributeValue("value","new_value");

? これが必要であることに注意してください:

using System.Xml.XPath;

これがドキュメントによってルート化されている場合は、次を使用できることに注意して/ください。

var doc = XDocument.Parse("<session><immediate><pivot><axes><attribute><selection a=\"b\"/></attribute></axes></pivot></immediate></session>");
var sel = doc.XPathSelectElement("/session/immediate/pivot/axes/attribute/selection");

もう 1 つの方法は単に を探すことです.Descendants("selection")が、一般的に xpath の方が柔軟性があります。

于 2012-07-25T09:39:02.407 に答える