以下适用于我:
Xdoc.Element("session")
.Element("immediate")
.Element("pivot")
.Element("axes")
.Element("axis")
.Element("attribute")
.Element("selection")
.Attribute("value")
.SetValue("New_Value");
我真的需要从文档的顶部开始吗?我知道我可以使用后代,但后来我无法引用该元素?
这是正确的方法吗?在XPath中,我会做类似于
的事情/*/*/*/*etc
答案 0 :(得分: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");
另一种方法是寻找.Descendants("selection")
,但xpath通常更灵活。