我有一个xml文件,我想做的是反转它的元素。我的意思是第一个元素应该是last,last应该是第一个。我希望所有元素都能反转。
实施例。这应该是
<Elements>
<Element1>
<Element2>
<Element3>
<Element4>
</ Elements>
此
<Elements>
<Element4>
<Element3>
<Element2>
<Element1>
</ Elements>
任何人都可以帮助我实现这一目标吗?
答案 0 :(得分:3)
将它们推入堆栈,然后将它们弹出以相反的顺序重建它。对文档中的每组嵌套元素递归执行此操作。
答案 1 :(得分:1)
阅读它们并致电.Reverse();
答案 2 :(得分:1)
确定。伙计们我已经为逆转创造了一个解决方案。
XmlDocument xd = new XmlDocument();
using (write = XmlWriter.Create(path2))
{
write.WriteStartDocument();
write.WriteStartElement("Customers");
write.WriteEndElement();
write.WriteEndDocument();
}
xd.Load(path2);
for (int i = count - 1; i >= 0; i--)
{
XmlNode node = xdoc.ChildNodes[1].ChildNodes[i];
//XComment com = new XComment("-------Reversed-------");
XmlNode xnode = xd.CreateNode(XmlNodeType.Element, "Customer", null);
XmlNode nodeId = xd.CreateElement("Id");
nodeId.InnerText = node.ChildNodes[0].InnerText;
XmlNode nodeName = xd.CreateElement("Name");
nodeName.InnerText = node.ChildNodes[1].InnerText;
XmlNode nodeAge = xd.CreateElement("Age");
nodeAge.InnerText = node.ChildNodes[2].InnerText;
xnode.AppendChild(nodeId);
xnode.AppendChild(nodeName);
xnode.AppendChild(nodeAge);
xd.DocumentElement.AppendChild(xnode);
xd.Save(path2);
}
上面的代码首先加载必须反转其元素的文件的内容。然后它创建一个新文件,并以相反的顺序将元素存储在该文件中。 希望这会对某人有所帮助。