編輯:實例現在包含有我的主文檔故障轉換XML文檔URL
大家在所有標籤!我只是對XSLT有個簡單的問題。我有一個很大的xml文件,其中嵌套了許多<DIMENSION_Id>
節點。在每個<DIMENSION_Id>
節點中有兩個SYN標記:<SYN>String</SYN><SYN>Integer</SYN>
我想要做的是將每個DIMENSION_Id的最遠的子節點連接到它的所有祖先路徑以創建一個URL。
即
<DIMENSIONS VERSION="1.0.0">
<DIMENSION NAME="Category" SRC_TYPE="INTERNAL">
<DIMENSION_NODE ID="1000"/>
<DIMENSION_Id>
<SYN>Text</SYN>
<SYN>Number</SYN>
<DIMENSION_Id>
<SYN>More Text</SYN>
<SYN>Another Number</SYN>
</DIMENSION_Id>
</DIMENSION_Id>
</DIMENSION>
</DIMENSIONS>
我寫了這個XSLT先獲得從父節點的所有信息,然後最後創建一個完整的URL子節點。不幸的是,它只給了我最遠的子節點的信息......我不知道如何附加任何其他文本。 (應改爲類似:最遠的父/接近父/母/ item_selected)
不幸的是它是所有給我當前節點的值....下面是我寫的XSLT:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" />
<xsl:template match="/DIMENSION_NODE">
<xsl:for-each select="ancestor-or-self::*">
<xsl:value-of select="@SYN" />
<xsl:text>/</xsl:text>
<xsl:value-of select="." />
<xsl:value-of select="@SYN" />
<xsl:text>/</xsl:text>
<xsl:value-of select="." />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
在此先感謝您的幫助!
你的問題配方不好。您的輸入樣本與樣式表不符,也不符合您的期望結果。請糾正這一點。 – 2010-10-05 16:19:23
請原諒我,但我不明白你需要告訴我什麼信息。我想要的是讓這就是在父SYN一路孩子,所以它看起來像一個URL值,即: GRANDPARENT_SYN_VALuE/PARENT_SYN_VALUE/CURRENT_NODE_SYN_VALUE 爲每個XML節點。接下來我需要做的是將第二個SYN值中的整數與URL匹配......但我主要關心的是實際的URL字符串。如果你需要我進一步澄清,請讓我知道.. – Daniel 2010-10-05 17:02:44
通過制定不佳的問題,我的意思是:'GRANDPARENT_SYN_VALuE/PARENT_SYN_VALUE' ...但你有**兩個**'SYN'元素;你的樣式表匹配輸入樣本中不存在的'DIMENSION_NODE'根元素;你試圖用' '輸出'SYN'屬性和'DIMENSION_NODE'元素的字符串值...... –
2010-10-05 17:53:48