2015-10-14 25 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

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

相關問題