微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我正在尝试使用序列化参数“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 选项,看看它是否有效,然后我们可以从那里获取它。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。