使用Linq对XML进行复杂排序 [英] Complex sorting of XML using Linq
本文介绍了使用Linq对XML进行复杂排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图找到我的问题的解决方案,但我在这方面(LINQ,XML)知识是相当有限的。 :(
'已经找到了一个 simular建设,但我需要更多的豆蔻位。排序的复杂的方式。
考虑下面的XML文档:
<信封>
<车身与GT;
<表>
将反式GT;
< b> 1< / b>
< A> 3' ; / A>
< C> 5℃/ C>
< /反式GT;
将反式GT;
< D> 1< / D>
< A> 6< / A>
< C>第3版; / C>
< /反式GT;
将反式GT;
< A> 1< / A>
< C>第3版; / C>
< b> 5℃/ b>
< /反式GT;
< /表>
< /车身与GT;
<信封>
有没有什么办法,我可以排序里面<元素;反式GT;使用C#/ LINQ的,还是我必须打破了所有<反式GT;元素和排序逐一?
更新
我有一个文件,这就是我特林完成。 ;)
<&信封GT;
<车身及GT;
<表>
将反式GT;
< A>第3版; / A>
< B> 1 LT; / B>
将c取代; 5℃/ c取代;
< /反式GT;
将反式GT;
< A> 6 LT; / A>
将c取代; 3'; / c取代;
< D> 1 LT; / D>
< /反式GT;
将反式GT;
< A> 1 LT; / A>
< B> 5℃/ B>
将c取代; 3'; / c取代;
< /反式GT;
< /表>
< /车身与GT;
<&信封GT;
解决方案
的XDocument XDOC = XDocument.Load(....);
的foreach(变种反式中xDoc.Descendants(跨))
{
trans.ReplaceAll(trans.Elements()的OrderBy(X =方式> x.Name.LocalName)) ;
}
串newXml = xDoc.ToString();
I've tried to find a solution for my problem, but my knowledge in this area (Linq, XML) is rather limited. :( 've found a simular construction, but I need a litte bit more complex way of sorting.
Consider the Following XML document:
<Envelope>
<Body>
<Table>
<Trans>
<B>1</B>
<A>3</A>
<C>5</C>
</Trans>
<Trans>
<D>1</D>
<A>6</A>
<C>3</C>
</Trans>
<Trans>
<A>1</A>
<C>3</C>
<B>5</B>
</Trans>
</Table>
</Body>
<Envelope>
Is there any way I can sort the elements inside <Trans> using C#/Linq, or do I have to break up all <Trans> elements and sort them one by one?
Update I have a file and this is what I'm tring to accomplish. ;)
<Envelope>
<Body>
<Table>
<Trans>
<A>3</A>
<B>1</B>
<C>5</C>
</Trans>
<Trans>
<A>6</A>
<C>3</C>
<D>1</D>
</Trans>
<Trans>
<A>1</A>
<B>5</B>
<C>3</C>
</Trans>
</Table>
</Body>
<Envelope>
解决方案
XDocument xDoc = XDocument.Load(....);
foreach(var trans in xDoc.Descendants("Trans"))
{
trans.ReplaceAll( trans.Elements().OrderBy(x=>x.Name.LocalName));
}
string newXml = xDoc.ToString();
这篇关于使用Linq对XML进行复杂排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文