将XML标记按字母顺序排序

前端之家收集整理的这篇文章主要介绍了将XML标记按字母顺序排序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有谁知道我可以加载XML文件并对其进行排序然后保存文件的方式?

我有一个带有一堆设置的xml文件..现在它变得难以管理,因为它们没有任何自然的排序顺序……

例如

  1. <edit_screen_a>
  2. <settings_font_size>
  3. <edit_screen_b>
  4. <display_screen>
  5. <settings_font_name>@H_301_6@
  6. 排序:

  7. <display_screen>
  8. <edit_screen_a>
  9. <edit_screen_b>
  10. <settings_font_name>
  11. <settings_font_size>@H_301_6@
您可以使用XSLT并从命令行运行它. (我建议 Saxon,但 Xalan会好的.)

这是一个例子……

XML输入

  1. <doc>
  2. <edit_screen_a/>
  3. <settings_font_size/>
  4. <edit_screen_b/>
  5. <display_screen/>
  6. <settings_font_name/>
  7. </doc>@H_301_6@
  8. XSLT 1.0

  9. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  10.   <xsl:output indent="yes"/>
  11.   <xsl:strip-space elements="*"/>
  12.   <xsl:template match="node()|@*">
  13.     <xsl:copy>
  14.       <xsl:apply-templates select="node()|@*"/>
  15.     </xsl:copy>
  16.   </xsl:template>
  17.   <xsl:template match="doc">
  18.     <doc>
  19.       <xsl:apply-templates>
  20.         <xsl:sort select="name()"/>
  21.       </xsl:apply-templates>      
  22.     </doc>
  23.   </xsl:template>
  24. </xsl:stylesheet>@H_301_6@ 
  25.  

    XML输出

  26.   
  27.  
    <doc>
  28.    <display_screen/>
  29.    <edit_screen_a/>
  30.    <edit_screen_b/>
  31.    <settings_font_name/>
  32.    <settings_font_size/>
  33. </doc>@H_301_6@

猜你在找的XML相关文章