C#: 使用属性值对 xml 节点进行排序

11 浏览
0 Comments

C#: 使用属性值对 xml 节点进行排序

有没有办法根据属性值对xml节点进行排序,考虑到我不能使用linq。因为我使用的是.NET 2.0版本。\n例如:\n


   
   
   
   

\n应该是这样的 ->\n


    
    
    
    

\n请帮忙。

0
0 Comments

问题的出现原因是需要对XML节点按照属性值进行排序,但是提供的代码中没有明确说明如何实现。解决方法是通过使用LINQ对XML节点进行排序,然后保存排序后的结果。

首先,使用以下代码对XML节点进行排序:

var xml= xDoc.Element("Root")
                .Elements("I")
                .OrderByDescending(s => (int) s.Attribute("aa"));

然后,使用以下代码保存排序后的结果:

XDocument doc = new XDocument(new XElement("Root", xml));
doc.Save("C:\\Something.xml");

另外,可以使用XSLT来实现对XML节点的排序。首先,创建一个XSLT样式表,如下所示:

然后,使用以下代码调用XSLT样式表进行转换:

XPathDocument myXPathDoc = new XPathDocument(myXmlFile) ;
XslTransform myXslTrans = new XslTransform() ;
myXslTrans.Load(myStyleSheet);
XmlTextWriter myWriter = new XmlTextWriter("result.xml",null) ;
myXslTrans.Transform(myXPathDoc,null,myWriter) ;

Garath提到无法使用LINQ,因此需要其他解决方法。询问是否允许使用XSLT,因为它是在.NET 2.0中可用的。

0