转换 XSL
Transformation XSL
我对 XSL 有一些疑问。
- 我有以下 XSL 文件。
XSLT 2.0
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template name="main" match="/">
<xsl:for-each select="collection('file:///C:/Users/Quality/Documents/ProyectoComerciales/download_files/?select=*.txt;unparsed=yes')">
<xsl:variable name="file" select="tokenize(document-uri(.), '/')[last()]"/>
<xsl:variable name="name" select="substring-before($file,'.')"/>
<xsl:variable name="url" select="concat('file:///C:/Users/Quality/Documents/ProyectoComerciales/xml/',$name,'.xml')"/>
<xsl:result-document method="xml" indent="yes" href="{$url}">
<xsl:variable name="path" select="concat('file:///C:/Users/Quality/Documents/ProyectoComerciales/download_files/',$file)"/>
<xsl:variable name="text" select="tokenize(unparsed-text($path),'
')"/>
<download>
...
</download>
</xsl:result-document>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
但是是否可以知道转换何时正确完成?
- 是否可以将 XSL 连接到数据库?,因为我必须将转换结果保存在我的数据库中
(1) 如果您查看从 Java(JAXP API 或 s9api API)调用 Saxon 的 API,您将看到所有相关方法定义了例外情况。如果转换失败,将抛出这些异常之一。您还可以通过指定 ErrorListener 在错误发生时接收错误通知来获取有关错误的更多详细信息。
(2) 将转换结果存入数据库是您的 Java 代码的责任。如果您希望次要结果文档(即 xsl:result-文档的输出)进入数据库,Saxon 允许您指定一个 OutputURIResolver,它将在每个结果文档可用时被调用。
我对 XSL 有一些疑问。
- 我有以下 XSL 文件。
XSLT 2.0
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template name="main" match="/">
<xsl:for-each select="collection('file:///C:/Users/Quality/Documents/ProyectoComerciales/download_files/?select=*.txt;unparsed=yes')">
<xsl:variable name="file" select="tokenize(document-uri(.), '/')[last()]"/>
<xsl:variable name="name" select="substring-before($file,'.')"/>
<xsl:variable name="url" select="concat('file:///C:/Users/Quality/Documents/ProyectoComerciales/xml/',$name,'.xml')"/>
<xsl:result-document method="xml" indent="yes" href="{$url}">
<xsl:variable name="path" select="concat('file:///C:/Users/Quality/Documents/ProyectoComerciales/download_files/',$file)"/>
<xsl:variable name="text" select="tokenize(unparsed-text($path),'
')"/>
<download>
...
</download>
</xsl:result-document>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
但是是否可以知道转换何时正确完成?
- 是否可以将 XSL 连接到数据库?,因为我必须将转换结果保存在我的数据库中
(1) 如果您查看从 Java(JAXP API 或 s9api API)调用 Saxon 的 API,您将看到所有相关方法定义了例外情况。如果转换失败,将抛出这些异常之一。您还可以通过指定 ErrorListener 在错误发生时接收错误通知来获取有关错误的更多详细信息。
(2) 将转换结果存入数据库是您的 Java 代码的责任。如果您希望次要结果文档(即 xsl:result-文档的输出)进入数据库,Saxon 允许您指定一个 OutputURIResolver,它将在每个结果文档可用时被调用。