繁体   English   中英

使用vb.net使用子节点更新XML文件

[英]Update an XML File with child node using vb.net

以下是我从中开始的xml文件的“默认”结构: <Group>的数量为十

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!--Properties General Logistic Plan-->
<Groups>
<Group id="01" GroupLevel="01" Description="First Group, Category first">
  <subGroups>

  </subGroups>
</Group>
<Group id="01" GroupLevel="02" Description=" First Group, Category second ">
  <subGroups>

  </subGroups>
</Group>
………
</Groups>

我想要的是传递一个名为“ 01”组中的subGroup的新孩子。
<subGroup id=”x” GroupLevel=”01.01” Description=”blablabla”/>
或另外在“ 02”组中
<subGroup id=”z” GroupLevel=”01.02” Description=”blablabla”/>
更过我要创建一个新的<Group>下的<subGroups> (取决于从GroupLevel )和最终的结构将看起来像这样:

<Groups>
<Group id="01" GroupLevel="01" Description="First Group, Category first">
  <subGroups>
    <subGroupB id=”10” GroupLevel=”01.01” Description=”blablabla”/>
      <GroupA id="21" GroupLevel="01.10" Description=" blablabla ">
         <subGroupC id=”10” GroupLevel=”01.21” Description=”blablabla”/>
        <GroupB id="33" GroupLevel="01.10.21" Description=" blablabla ">
            <subGroupD id=”12” GroupLevel=”01.10.21” Description=”blablabla”/>
        </GroupB>
      </GroupA>
  </subGroups>
</Group>
<Group id="01" GroupLevel="02" Description=" First Group, Category second ">
  <subGroups>

  </subGroups>
</Group>
………
</Groups>

子组B或C或D可能很多,当然,它们每次必须在各自的位置上通过。
我已经为此使用了多种解决方案。 但没人能满足我的需求
这个问题超出了我的个人编程经验
有人知道我该怎么做吗?
如果您可以使用vb.net给我一个完整的解决方案; 类似public class

它需要是这样的,因为最终用户需要添加一个新的subGroup取决于GroupLevel每个自己的客户使用。

如果您使用的是net framework3.5,则可以使用XDocument ,这里有一些建议,您可以继续进行编码和反馈;)

1)请通过XDocument的Descadents或Elements函数获取特定的节点,也许它将与First()或FirstOrDefault()结合使用。 但是,请首先使用XDocument的Load加载完整的xml文件,注意其路径。

2)然后,您可以使用XElment的Add方法添加新的XElement(请参见MSDN示例: http : //msdn.microsoft.com/zh-cn/library/system.xml.linq.xelement.add (v=vs.110 ).aspx?cs-save-lang = 1&cs-lang = vb#code-snippet-1

3)最后,请使用XDocument的Save方法覆盖xml文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM