在特定位置插入XML节点 [英] Inserting XML node at specific position

查看:270
本文介绍了在特定位置插入XML节点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个XML文件,我加载它的XmlDocument。该文件有一个节点,一些像这样的子节点

I have an XML file and I am loading it in Xmldocument. This document has a node with some child nodes like this

<xml here>
 <somenode>
   <child> </child>
   <children></children>
   <children></children>
   <children></children>  // I need to insert it
   <children></children>  // I need to insert this second time
   <children></children>
   <children></children>
   <child> </child>
 <somenode>
<xml here>

在这里somenode有一些孩子,其中第一和最后一个子节点的名称相同,其中,除了第一个和最后一个节点等节点有一些不同势的域名(彼此相同)。我创建一个函数来插入特定位置上的一个节点,我不知道有关标准,但可能会在中期。

here somenode has some children where first and last children node names are same where as other nodes except the first and last node has some diffrent name ( identical to each other ). I am creating a function to insert a node at specific position, I am not sure about the criteria but may be in the mid.

  • 我怎么能插入特定位置的节点。我使用XMLnode.appendChild方法插入
  • 请我需要插入后重新安排/排序节点。请建议。
  • 我怎么能确定是什么结构,我应该如何寻找到新节点应根据当前的文档结构补充说。

推荐答案

您可以使用XLINQ来的修改XML文档

you can use XLinq to modify XML document

以下是XML变形例

    String xmlString = "<?xml version=\"1.0\"?>"+"<xmlhere>"+
    "<somenode>"+
    " <child> </child>"+
    " <children>1</children>"+ //1
    " <children>2</children>"+ //2
    " <children>3</children>"+ // 3, I need to insert it
    " <children>4</children>"+  //4,  I need to insert this second time
    " <children>5</children>"+
    " <children>6</children>"+ 
    " <child> </child>"+
    " </somenode>"+
    "</xmlhere>";

    XElement root = XElement.Parse(xmlString);
    var childrens = root.Descendants("children").ToArray();
    var third = childrens[3];
    var fourth = childrens[4];
    third.AddBeforeSelf(new XElement("children"));
    fourth.AddBeforeSelf(new XElement("children"));

    var updatedchildren = root.Descendants("children").ToArray();

这篇关于在特定位置插入XML节点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆