我有类似下面的XML文件:XML迭代和rearrangement- C#
<?xml version="1.0" ?>
<System>
<LP1>
<Equipment>
<FromName>Receptacle</FromName>
<Wire>1-#10, 1-#10, 1-#10</Wire>
<Length>89.8411846136344</Length>
</Equipment>
</LP1>
<X-1>
<Equipment>
<FromName>LP1</FromName>
<Wire>3-#3/0, 1-#3/0, 1-#6</Wire>
<Length>10.170412377555</Length>
</Equipment>
</X-1>
<HP1>
<Equipment>
<FromName>X-1</FromName>
<Wire>3-#3/0, 1-#3/0, 1-#6</Wire>
<Length>8.2423259796908</Length>
</Equipment>
<Equipment>
<FromName>AH-1</FromName>
<Wire>3-#6, 1-#10</Wire>
<Length>32.4019419736209</Length>
</Equipment>
<Equipment>
<FromName>EF-1</FromName>
<Wire>3-#12, 1-#12, 1-#12</Wire>
<Length>8.33572105849677</Length>
</Equipment>
</HP1>
</System>
我需要阅读它,并重新安排它看起来:
<?xml version="1.0" ?>
<HP1>
<Equipment>
<FromName>X-1</FromName>
<Wire>3-#3/0, 1-#3/0, 1-#6</Wire>
<Length>8.2423259796908</Length>
<Equipment>
<FromName>LP1</FromName>
<Wire>3-#3/0, 1-#3/0, 1-#6</Wire>
<Length>10.170412377555</Length>
<Equipment>
<FromName>Receptacle</FromName>
<Wire>1-#10, 1-#10, 1-#10</Wire>
<Length>89.8411846136344</Length>
</Equipment>
</Equipment>
</Equipment>
<Equipment>
<FromName>AH-1</FromName>
<Wire>3-#6, 1-#10</Wire>
<Length>32.4019419736209</Length>
</Equipment>
<Equipment>
<FromName>EF-1</FromName>
<Wire>3-#12, 1-#12, 1-#12</Wire>
<Length>8.33572105849677</Length>
</Equipment>
</HP1>
</System>
基本上,原始XML具有单独的元素(LP1,X-1,HP1),当设备“FromName”匹配系统的父元素名称时,我想将其放置为子元素。
我猜测我需要做一些递归函数,但是我对C#和编程有点新,并且对XML或递归函数没有多少经验。
任何帮助,将不胜感激。
谢谢
我只是在等待Skeet显示一行LINQ表达式,完成这一切。 – 2010-09-14 04:26:38