2016-01-11 143 views
0

我有一个XML需要根据学生ID进行排序,请建议有效的方法。基于节点值重新排序XML

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<StudentData xmlns="http://www.example.org/consolidated"> 
<Student> 
<StudentID>1</StudentID> 
<StudentBranch>CSE</StudentBranch> 
</Student> 
<Student> 
<StudentID>5</StudentID> 
<StudentBranch>ECE</StudentBranch> 
</Student> 
<Student> 
<StudentID>3</StudentID> 
<StudentBranch>MECH</StudentBranch> 
</Student> 
<Student> 
<StudentID>7</StudentID> 
<StudentBranch>MECH</StudentBranch> 
</Student> 
</StudentData> 
+0

你已经尝试过一些东西吗? –

+0

我尝试了Java代码,但是怀疑像XSLT这样的现有转换技术会有所帮助。所以我正在寻求一种有效的实施方式。 –

回答

1

您可以在xsl:for-each中使用xsl:sort函数,该函数应该安静高效。所以像这样:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:template match="/"> 
    <xsl:for-each select="StudentData/Student"> 
     <xsl:sort select="StudentID"/> 
     <!-- your code here, e.g. create new Student Element--> 
    </xsl:for-each> 
    </xsl:template> 
</xsl:stylesheet>