2017-03-02 48 views
1

如何在包含值和引用時顯示xml值?當它可以包含值和參考時顯示xml值

例如,我嘗試列出生成的XML中的特徵。第一個條目包含格式爲「文本」的數據。第二個值也是如此,但這被列爲前一特徵的參考。

<characteristicTypes> 
    <characteristictype> 
    <number>1</number> 
    <format>TEXT</format> 
    <name>Address</name> 
    </characteristictype> 
    <characteristictype> 
    <number>2</number> 
    <format reference="../../characteristictype/format"/> 
    <name>Description</name> 
    </characteristictype> 
<characteristicTypes> 

我想如下,以顯示他們兩個:

  1. 特點1
    • 格式:文本
    • 名稱:地址
  2. 特性2
    • 格式:文本
    • 名稱:說明

當我使用

<xsl:value-of select="format"/> 

的第一個條目包含正確的值,但第二個是空的:

  1. 特徵1
    • 格式:文本
    • 名稱:地址
  2. 特性2
    • 格式:
    • 名稱:說明
+1

您的XML是否真的包含需要評估的XPath表達式?如果是這樣,你需要一個支持XSLT 3.0或某種'evaluate()'擴展函數的處理器。 - 還要注意的是,給定的表達式不僅指「 TEXT」,還指其自身。 –

回答

0

你可以嘗試這樣的事情 -

<xsl:value-of select="preceding-sibling::characteristicTypes/characteristictype/format"/> 

使用preceding-sibling將提供對前一個節點的訪問。