如何从属性值中使用的字符串中删除引号
How can I remove quotes from a string that is used in an attribute value
这是我第一次使用 xlst 语言。
我有一个小问题,但我找不到解决方案。
XML 示例:
<DATA>
<KEY>1234</KEY>
<VALUE>"AB"</VALUE>
</DATA>
<DATA>
<CLE>4567</CLE>
<VALUE>"CD"</VALUE>
</DATA>
我正在构建这样的输入 xml:
<TestAlias Alias="{DATA[1]/KEY}" ExtRef="{DATA[1]/VALUE}"/>
结果几乎是完美的:
<ProjectAlias Alias="1234" ExtRef="**"**;AB**"**;"/>
问题出在我的 VALUE 上的“ ”。我可以在 ExtRef="{DATA[1]/VALUE}"
时选择不服用它们吗?
以下任一方法都适用于您的示例:
1.
<TestAlias Alias="{DATA[1]/KEY}" ExtRef="{translate(DATA[1]/VALUE, '"', '')}"/>
将删除 所有 引号;
2.
<TestAlias Alias="{DATA[1]/KEY}" ExtRef="{substring(DATA[1]/VALUE, 2, string-length(DATA[1]/VALUE) - 2)}"/>
或者,如果您愿意:
<xsl:variable name="ext-ref" select="DATA[1]/VALUE" />
<TestAlias Alias="{DATA[1]/KEY}" ExtRef="{substring($ext-ref, 2, string-length($ext-ref) - 2)}"/>
将跳过第一个和最后一个字符。
这是我第一次使用 xlst 语言。 我有一个小问题,但我找不到解决方案。
XML 示例:
<DATA>
<KEY>1234</KEY>
<VALUE>"AB"</VALUE>
</DATA>
<DATA>
<CLE>4567</CLE>
<VALUE>"CD"</VALUE>
</DATA>
我正在构建这样的输入 xml:
<TestAlias Alias="{DATA[1]/KEY}" ExtRef="{DATA[1]/VALUE}"/>
结果几乎是完美的:
<ProjectAlias Alias="1234" ExtRef="**"**;AB**"**;"/>
问题出在我的 VALUE 上的“ ”。我可以在 ExtRef="{DATA[1]/VALUE}"
时选择不服用它们吗?
以下任一方法都适用于您的示例:
1.
<TestAlias Alias="{DATA[1]/KEY}" ExtRef="{translate(DATA[1]/VALUE, '"', '')}"/>
将删除 所有 引号;
2.
<TestAlias Alias="{DATA[1]/KEY}" ExtRef="{substring(DATA[1]/VALUE, 2, string-length(DATA[1]/VALUE) - 2)}"/>
或者,如果您愿意:
<xsl:variable name="ext-ref" select="DATA[1]/VALUE" />
<TestAlias Alias="{DATA[1]/KEY}" ExtRef="{substring($ext-ref, 2, string-length($ext-ref) - 2)}"/>
将跳过第一个和最后一个字符。