gpt4 book ai didi

saxon - 创建 xsl :result-document with xpath 3. 1 fn :transform using saxon 9. 9 EE

转载 作者:行者123 更新时间:2023-12-05 04:46:29 28 4
gpt4 key购买 nike

我想使用 xpath 3.1 fn:transform 创建一个输出文档。以下是 A.xsl。它在直接运行时创建 A.xml(从氧气中):

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:math="http://www.w3.org/2005/xpath-functions/math"
exclude-result-prefixes="xs math"
version="3.0">

<xsl:output name="xml" method="xml" indent="true" />

<xsl:template name="xsl:initial-template">
<xsl:message select="'A'"/>

<xsl:result-document href="file:/C:/Work/test/A.xml" format="xml">
<resultDoc>
<text>The result of A.</text>
</resultDoc>
</xsl:result-document>
</xsl:template>
</xsl:stylesheet>

结果:创建了具有所需输出的 ​​A.xml:

<?xml version="1.0" encoding="UTF-8"?>
<resultDoc>
<text>The result of A.</text>
</resultDoc>

现在,使用转换函数调用A.xsl:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs"
version="3.0">

<xsl:output name="xml" method="xml" encoding="UTF-8" indent="true" />

<!-- Global Constants -->

<xsl:variable name="xsl-file-base" select="'file:/C:/Work/test/'" as="xs:string"/>
<xsl:variable name="xsl-pipeline" select="'A.xsl'" as="xs:string"/>

<!-- Entry Point -->

<xsl:template name="xsl:initial-template">
<xsl:iterate select="$xsl-pipeline">
<xsl:variable name="file" select="$xsl-file-base || ." as="xs:string"/>

<xsl:result-document href="file:/C:/Work/test/A.xml" format="xml">
<xsl:sequence select="transform(map{'stylesheet-location' : $file})?output"/>
</xsl:result-document>
</xsl:iterate>
</xsl:template>
</xsl:stylesheet>

结果:A.xml 已创建但不完整。感谢您的帮助。

<?xml version="1.0" encoding="UTF-8"?>

最佳答案

transform 函数的结果是一个映射,其中一个名为 output 的条目用于主要结果文档,而更多条目用于次要结果文档。您调用的样式表使用 URI file:/C:/Work/test/A.xml 创建次要结果

<xsl:sequence 
select="transform(map{'stylesheet-location' : $file})('file:/C:/Work/test/A.xml')"/>

更有可能产生输出。

关于saxon - 创建 xsl :result-document with xpath 3. 1 fn :transform using saxon 9. 9 EE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68778164/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com