【问题标题】:How to write inside a element using xDocument如何使用 xDocument 在元素内写入
【发布时间】:2021-08-18 10:11:09
【问题描述】:

这是 XML 文件

?xml version="1.0" encoding="utf-8"?>
<!--This file is generated by the program.-->
<DATABASE>
  <SCENE SCENE_NAME="SCENE_TestSene"></SCENE>
  </SCENE>
</DATABASE>

我想在元素“SCENE SCENE_NAME="SCENE_TestSene"”里面写

这是我写入元素的代码。

 XDocument doc = XDocument.Load("Database.xml");
 XElement root = new XElement("XYZ");
 root.Add(new XElement("tName", "VIRAT"));
 doc.Element("//DATABASE/SCENE[@SCENE_NAME='SCENE_TestSene']").Add(root); // this line crashes the application
 doc.Save("Database.xml");

如何在元素内插入数据。

这就是写完之后的样子。

<DATABASE>
      <SCENE SCENE_NAME="SCENE_TestSene">
        <XYZ>
          <tName>virat</tName>
        </XYZ>
      </SCENE>
</DATABASE>

【问题讨论】:

    标签: c# xml


    【解决方案1】:

    使用doc.XPathSelectElement("/DATABASE/SCENE[@SCENE_NAME='SCENE_TestSene']").Add(new XElement("XYZ"),new XElement("tName", "VIRAT")))

    【讨论】:

    • 是否可以先添加 XElement("XYZ") 然后在下一行添加 XElement("tName", "VIRAT")
    • 答案的主要部分是使用XPathSelectElement。至于向一个元素添加多个元素,我认为 LINQ to XML 中的构造函数允许例如 new XElement("XYZ", new XElement("tName", "VIRAT"), new XElement("foo", "bar")),因为构造函数被声明为 public XElement (System.Xml.Linq.XName name, params object[] content);
    • 我可能需要在 XElement("XYZ") 中添加多个元素,数量可能会有所不同
    • 好吧,构造函数声明了params object[] content,所以你可以在其中抛出任意数量的参数,即任意数量的XNodes
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多