撒克逊人:属性顺序如何工作?

问题描述

我正在尝试使用序列化参数“saxon:attribute-order”对标签属性进行重新排序,但我无法使其正常工作,我缺少什么?

文件

   <?xml version="1.0"?>
    <list>
        <span class="pagebreak" name="1" title="ONE">Test</span>
        <span class="nobreak" name="X" title="X">Test</span>
        <span class="pagebreak" name="2" title="TWO">Test</span>
        <span class="pagebreak" name="3" title="THREE">Test</span>
        <span class="pagebreak" name="4" title="FOUR">Test</span>
        <span class="nobreak" name="Y" title="Y">Test</span>
        <span class="pagebreak" name="5" title="FIVE">Test</span>
    </list>

XSL:

<?xml version="1.0"?>

<xsl:stylesheet 
    version="2.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:saxon="http://saxon.sf.net/" 
    exclude-result-prefixes="saxon">

 <xsl:output method="xml" indent="yes" saxon:attribute-order="title name class * xml:space"/>

 <xsl:template match="/">
 <xsl:apply-templates select="*/span[contains(@class,'pagebreak')]" />
 </xsl:template>

 <xsl:template match="*/span[contains(@class,'pagebreak')]">
 <xsl:copy-of select="." />
 </xsl:template>
</xsl:stylesheet>

输出文件

<?xml version="1.0" encoding="UTF-8"?>
<span class="pagebreak" name="1" title="ONE">Test</span>
<span class="pagebreak" name="2" title="TWO">Test</span>
<span class="pagebreak" name="3" title="THREE">Test</span>
<span class="pagebreak" name="4" title="FOUR">Test</span>
<span class="pagebreak" name="5" title="FIVE">Test</span>

解决方法

您向我们展示的代码没有任何问题,所以问题出在您没有向我们展示的地方...

也许您正在使用无法识别扩展属性的 Saxon-HE。

也许您要将输出发送到序列化程序以外的目的地?

从命令行尝试使用 -t 选项,看看它是否有效,然后我们可以从那里获取它。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...