1

我已经开始探索 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>...的最后一个孩子

4

1 回答 1

1

如果你有一些像

<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
}
于 2013-06-05T21:58:19.423 回答