xml - 使用 xslt 将文本转换为 xml 而不提供输入文件名
问题描述
我希望我的文本文件在不提供输入文件名的情况下使用 xslt 转换为 xml 文件。我处理了下面的代码,但它采用了文件名。不提供文件名如何将一些文本转换为 xml,如下面的 Output.xml . 有人可以帮我吗。
输入.txt:
12/34/56/78/9/123/
变换.xslt:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fn="http://www.w3.org/2005/xpath-functions" exclude-result-
prefixes="xs fn">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:param name="pathToFile" select="'file:///c:/Input.txt'" />
<xsl:param name="filename" select="'file:///c:/Output.xml'"/>
<xsl:template match="/">
<xsl:choose>
<xsl:when test="unparsed-text-available($pathToFile)">
<xsl:result-document href="{$filename}" method="xml">
<xsl:variable name="csv" select="unparsed-text($pathToFile)" />
<xsl:copy>
<File>
<xsl:value-of select="$csv" />
</File>
</xsl:copy>
</xsl:result-document>
</xsl:when>
<xsl:otherwise>
<xsl:text>Cannot locate : </xsl:text><xsl:value-of
select="$pathToFile" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
输出.xml:
<?xml version="1.0" encoding="UTF-8"?>
<File>1/23/456/7/8/14/9/</File>
解决方案
目前尚不清楚您使用哪种 XSLT 处理器、如何调用它(命令行、API、IDE 内部),以及您希望像 XSLT 样式表这样的计算机程序以何种方式处理某些输入文件而不提供输入文件名。
通常,在 XSLT 2 及更高版本中,您可以使用命名模板开始处理,而不是提供从与其匹配的模板开始处理的 XML 输入文档。在 XSLT 2 中您必须选择一个(例如<xsl:template match="main">...</xsl:template>
),或者在 XSLT 3 中您可以命名它<xsl:template name="xsl:initial-template">...</xsl:template>
。然后,您必须使用处理器或 IDE 特定的方法来设置转换以使用该模板。
我不明白您希望如何在不提供文件名的情况下处理文本输入文件。
推荐阅读
- java - 为什么我不能使用实现 List 的类
列表 是期待? - c# - 计算列表中的重复项
并将它们保存在不同的文件中(或列表/数组/字符串) - python - Google App Engine Flex 是否支持 Pipfile?
- python - 如何解决与 BigQueryError 相关的问题 "reason": "invalid", "location": "test", "debugInfo": "", "message": "no such field."
- javascript - 与数组进行比较并根据值更新的代码永远不会返回更新
- python - Composer 没有看到数据流作业成功
- firebase - 如何使用 Firebase 身份验证将帐户与不同的提供商关联?
- javascript - 如何在 japi joi 中进行嵌套对象验证
- metrics - keras.metrics.AUC() 用于三元分类问题
- mdx - MDX 多个条件过滤多个维度