C# 在XElement中设置值-我真的必须从根开始吗?
以下是我的作品:C# 在XElement中设置值-我真的必须从根开始吗?,c#,xml,xpath,linq-to-xml,C#,Xml,Xpath,Linq To Xml,以下是我的作品: Xdoc.Element("session") .Element("immediate") .Element("pivot") .Element("axes") .Element("axis") .Element("attribute") .Element("selection") .Attribute("value") .SetValue("New_Value"); 我真的需要从文档的顶部开始吗?我知道我可以使
Xdoc.Element("session")
.Element("immediate")
.Element("pivot")
.Element("axes")
.Element("axis")
.Element("attribute")
.Element("selection")
.Attribute("value")
.SetValue("New_Value");
我真的需要从文档的顶部开始吗?我知道我可以使用后代,但是我不能引用元素
正确的方法是什么?在XPath中,我会做类似于
/*/*/*/*etc
你是说:
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");
请注意,如果此文档以文档为根,则可以使用/
:
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");
var doc=XDocument.Parse(“”);
var sel=doc.XPathSelectElement(“/session/immediate/pivot/axes/attribute/selection”);
另一种方法是查找.substands(“selection”)
,但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");