saxon:attribute-订单如何运作?
How saxon:attribute-order works?
我正在尝试使用序列化参数“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 选项从命令行尝试,看看是否有效,然后我们可以从那里获取它。
我正在尝试使用序列化参数“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 选项从命令行尝试,看看是否有效,然后我们可以从那里获取它。