4

XML ファイルがあり、それを Xmldocument にロードしています。このドキュメントには、このようないくつかの子ノードを持つノードがあります

<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 にはいくつかの子があり、最初と最後の子ノード名は同じですが、最初と最後のノードを除いて他のノードとは異なる名前 (互いに同一) があります。特定の位置にノードを挿入する関数を作成しています。基準についてはわかりませんが、途中である可能性があります。

  • ノードを特定の位置に挿入するにはどうすればよいですか。挿入に XMLnode.appendChild メソッドを使用しています
  • 挿入後にノードを再配置/ソートする必要がありますか? 提案してください。
  • 構造とは何かを判断するにはどうすればよいですか。また、現在のドキュメント構造に従って新しいノードを追加する必要がある場所を見つけるにはどうすればよいですか。
4

3 に答える 3

1

you can use XLinq to modify XML document

Following is an example of xml modification

    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();
于 2012-05-14T07:34:58.257 に答える
0

http://www.c-sharpcorner.com/Forums/Thread/55428/how-to-insert-xml-child-node-programmatically.aspx Cheack it! 役に立つと思います。

于 2012-05-14T07:29:51.920 に答える