【问题标题】:How to insert a child element into an existing element如何将子元素插入现有元素
【发布时间】:2013-09-25 20:23:24
【问题描述】:

我正在使用 XDocument 编写一个 xml 文件,并且正在两个不同的位置写入该文档。第一次写后我有

<?xml version="1.0" encoding="utf-8"?>
<suspensedata connectionid="000" customerid="000" name="MyName" />

第二次写入后,我希望文件看起来像这样

<?xml version="1.0" encoding="utf-8"?>
<suspensedata connectionid="560" customerid="131" name="ImgTransfer2327">
  <transaction DocumentID="46" SuspenseID="7">
    <field id="LocationID">000000015000</field>
    <field id="AccountNumber">50000</field>
    <field id="AmountPaid">25.00</field>
    <field id="CheckAmount">100.00</field>
    <field id="CheckNo">000</field>
  </transaction>
</suspensedata>

但我似乎无法正确完成插入。

我试过了(我的XDocument 的名字是ValidXml)ValidXml.Root.Add(new Element("transaction")); 这不会改变任何事情。

我也试过ValidXml.Element("suspensedata").Add(new XElement("transaction")); 但这也不起作用。

如何添加这个子元素?

编辑:除了第一次尝试的输出之外,两次尝试都没有产生任何其他输出。我也确实确保使用 ValidXml.Save()

【问题讨论】:

  • 这可能是同一个问题:stackoverflow.com/questions/8558763/…
  • 你得到了什么?它没有产生输入还是无效输入?
  • @Vulcronos IT 没有产生新的输出。我编辑了我的问题。

标签: c# linq-to-xml


【解决方案1】:

我已经尝试过这样的事情,我认为这两个部分在 2 个文件中

//xmlfile1 包含第一部分

  <?xml version="1.0" encoding="utf-8"?>
  <suspensedata connectionid="000" customerid="000" name="MyName" />

//这部分会这样加载

  XDocument xDoc = XDocument.Load("xmlfile1.xml");
       XElement elt = xDoc.Root;  

//第二个文件包含第二部分

         XDocument xDoc2 = XDocument.Load("xmlfile2.xml");
         XElement elt2 = xDoc2.Root;
         elt.Add(elt2);
         xDoc.Save("xmlfile1.xml");  

希望对你有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-09
    • 1970-01-01
    • 2021-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多