提问人:Yogendra 提问时间:4/27/2023 最后编辑:BorjaYogendra 更新时间:4/28/2023 访问量:20
如何使用 dom 解析器在 java 中根据另一个 XML 文件对一个 XML 文件中的标签重新排序
How to re order the tags in one XML file based on another XML file in java using dom parser
问:
我有一个XML文件,比如source.xml
<students>
<student2>
<college>SIET</college>
<name>Rithvik</name>
</student2>
<student1>
<college>SCET</college>
<name>Prabhas</name>
</student1>
</students>
还引用了XML文件,例如引用.xml
<students>
<student1>
<name>Prabhas</name>
<college>SCET</college>
</student1>
<student2>
<name>Ritvik</name>
<college>SIET</college>
</student2>
</students>
我的要求是根据引用的XML文件对源XML文件的标签重新排序。 最后,源 XML 变得像引用的 XML。
输出:源 .xml
<students>
<student1>
<name>Prabhas</name>
<college>SCET</college>
</student1>
<student2>
<name>Ritvik</name>
<college>SIET</college>
</student2>
</students>
我已经尝试了很多方法,但找不到解决方案。 如果你能帮助我,那将是一个很大的帮助
答:
1赞
Michael Kay
4/27/2023
#1
我看不出有任何可以想象的理由想要用 DOM 而不是 XSLT 来做到这一点。
在 XSLT(2.0 或 3.0)中:
(a) 例如,按照元素名称在参考文档中出现的顺序获取元素名称列表
<xsl:variable name="elNames"
select="doc('reference.xml')//person[1]/*/local-name()"/>
(b) 根据以下列表对输入文档中 person 元素的子元素进行排序:
<xsl:template match="person">
<person>
<xsl:perform-sort select="*">
<xsl:sort select="index-of($elNames, local-name())"/>
</xsl:perform-sort>
</person>
</xsl:template>
评论