我有一个像这样结构的纯文本文件:
!ITEM_NAME
Item value
!ANOTHER_ITEM
Its value
...
Run Code Online (Sandbox Code Playgroud)
是否可以使用类似于XSLT的文件:
<?xml version="1.0" encoding="UTF-8" ?>
<document>
<ITEM_NAME>Item value</ITEM_NAME>
<ANOTHER_ITEM>Its value</ANOTHER_ITEM>
...
</document>
Run Code Online (Sandbox Code Playgroud)
编辑
对不起,我之前没有明确说过.我试图使用Visual Studio 2005 XSLT引擎完成此转换.我已经尝试了两种提供的解决方案,我确信这是正确的.但Visual Studio 2005不知道未解析的文本功能.
我有一个分隔的字符串(在我下面的例子中用空格分隔),我需要对它进行标记,排序,然后重新连接在一起,我需要使用XSLT 1.0完成所有这些操作.我该怎么办?我知道我需要以xsl:sort某种方式使用,但到目前为止我所尝试的一切都给了我一些错误.
例如,如果我在此帖子的底部运行代码,我会得到:
草莓蓝莓橙色覆盆子石灰柠檬
如果我想要这样做,我该怎么办?:
蓝莓柠檬石灰橙色覆盆子草莓
请注意,我正在使用XSLT 1.0.
这是代码,它基于Jeni Tennison的代码.
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="tokenize1.xsl"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="'strawberry blueberry orange raspberry lime lemon'" />
</xsl:call-template>
</xsl:template>
<xsl:template name="tokenize">
<xsl:param name="string" />
<xsl:param name="delimiter" select="' '" />
<xsl:choose>
<xsl:when test="$delimiter and contains($string, $delimiter)">
<token>
<xsl:value-of select="substring-before($string, $delimiter)" />
</token>
<xsl:text> </xsl:text>
<xsl:call-template name="tokenize">
<xsl:with-param name="string"
select="substring-after($string, $delimiter)" />
<xsl:with-param name="delimiter" select="$delimiter" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<token><xsl:value-of select="$string" /></token>
<xsl:text> </xsl:text> …Run Code Online (Sandbox Code Playgroud)