选择XML文档中的最后一个子节点

本文关键字:最后一个 子节点 XML 文档 选择 | 更新日期: 2023-09-27 18:17:01

我已经开始探索c#,并正在考虑处理xml。

var doc = XDocument.parse("some.xml");
XElement root = doc.Element("book");
root.Add(new XElement("page"));
XElement lastPost = (XElement)root.Element("book").LastNode;
if (!lastPost.HasAttributes)
{
     lastPost.Add(new XAttribute("src", "kk");
}
doc.Save("some.xml");
现在,我构建xml文件
<flare>
 <control >
 <control />
 <pages>
 </pages>
</flare>

我需要添加到<page name="aaa" type="dd" />页到目前为止,我已经添加了<page>,但我如何添加属性?为此,我必须以某种方式选择<pages>的最后一个子……

选择XML文档中的最后一个子节点

如果你有一些xml文件,比如

<book>
  <pages>      
  </pages>
</book>

您想添加page元素与一些属性,然后

var pages = xdoc.Root.Element("pages");
pages.Add(new XElement("page", 
                       new XAttribute("name", "aaa"), // adding attribute "name"
                       new XAttribute("type", "dd"))); // adding attribute "type"
xdoc.Save("some.xml"); // don't forget to save document

这将添加以下page元素:

<book>
  <pages>
     <page name="aaa" type="dd" />      
  </pages>
</book>

修改最后一页的属性也很简单:

var lastPage = pages.Elements().LastOrDefault(); // getting last page if any
if (lastPage != null)
{
    lastPage.Add(new XAttribute("foo", "bar")); // add new attribute
    lastPage.SetAttributeValue("name", "bbb"); // modify attribute
}