2015-10-14 39 views
0

这是我第一次使用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="**&#34**;AB**&#34**;"/> 

的问题是“ “在我的价值。当我做ExtRef="{DATA[1]/VALUE}"时,我可以选择不接受吗?

+0

您可以使用translate()来移除**所有引号或substring()来跳过第一个和最后一个字符。一个例子是不足以说明什么是最好的。 –

+0

我必须创建一个放入我的ExtRef,然后创建一个子字符串/翻译,或者我可以直接使用我的ExtRef来完成它? –

回答

2

无论这些人会与你的工作,例如:

<TestAlias Alias="{DATA[1]/KEY}" ExtRef="{translate(DATA[1]/VALUE, '&quot;', '')}"/> 

将删除所有报价;

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)}"/> 

将跳过第一个和最后一个字符。

+0

它的工作完美,谢谢:) –

相关问题