【问题标题】:Change order of elements in XmlDocument更改 XmlDocument 中元素的顺序
【发布时间】:2013-07-08 01:12:11
【问题描述】:

这里是xml的例子:

<root>
<something1></something1>
<something2></something2>
<something3></something3>
<important>
<some1>123_random_number</some1><some2>ASD</some2>
</important>
<important>
<some1>456_random_number</some1><some2>FGH</some2>
</important>
<important>
<some1>789_random_number</some1><some2>JKL</some2>
</important>
</root>

我需要改变元素的顺序,得到这样的xml文档:

<root>
<something1></something1>
<something2></something2>
<something3></something3>
<important>
<some1>789_random_number</some1><some2>JKL</some2>
</important>
<important>
<some1>456_random_number</some1><some2>FGH</some2>
</important>
<important>
<some1>123_random_number</some1><some2>ASD</some2>
</important>
</root>

有人可以帮助我吗? 提前致谢, P

【问题讨论】:

标签: c# xml xmldocument


【解决方案1】:

这很简单,但我是初学者 :) 答案如下:

XmlReader reader = XmlReader.Create(@"dataIn.xml");
XmlDocument doc = new XmlDocument();
doc.Load(reader);
XmlNodeList elem = doc.GetElementsByTagName("important");

List<string> originalOrder = new List<string>();

foreach (XmlNode tag in elem)
  {
    originalOrder.Add(tag.InnerXml);
  }

int numberOfNodes = elem.Count;

for (int i = 0; i < numberOfNodes; i++) {
    elem[i].InnerXml = order[order.Count - 1 - i];
  }
doc.Save(@"dataOut.xml");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-05
    相关资源
    最近更新 更多