我工作的一個小項目學習XSL值從一個節點選擇的數據,我經歷了一個問題,運行...XSL:基於可變
我有一個DocBook與文件按部門分類的人員名單系列。然而,有時候,我會有一個人在自己的小團體中工作。爲了避免重複數據,我指定了一個人節點要麼在其節點中包含數據,要麼包含一個鏈接到其主節點的外部參照節點。當我遍歷組中的所有人時,我需要檢查節點是鏈接節點還是數據節點,並相應地調整我的變量。
這裏的選擇代碼
<xsl:choose>
<xsl:when test="xref">
<xsl:variable name="TAG_ID" select="xref/@linkend" />
<xsl:variable name="NAME" select="//*[@id='$TAG_ID']/para[@id='who']" />
<xsl:variable name="EMAIL" select="//*[@id='$TAG_ID']/para[@id='who']/ulink/@url" />
<xsl:variable name="IMAGE" select="//*[@id='$TAG_ID']/para[@id='image']" />
<xsl:variable name="MEET" select="//*[@id='$TAG_ID']/para[@id='meet']" />
<xsl:call-template name="output_person" />
</xsl:when>
<xsl:otherwise>
<xsl:variable name="NAME" select="para[@id ='who']" />
<xsl:variable name="EMAIL" select="para[@id='who']/ulink/@url" />
<xsl:variable name="IMAGE" select="para [@id='image']" />
<xsl:variable name="MEET" select="para [@id='meet']" />
<xsl:call-template name="output_person" />
</xsl:otherwise>
</xsl:choose>
然而,當我嘗試運行此我得到以下錯誤...
runtime error: file team.xsl line 92 element img
Variable 'IMAGE' has not been declared.
xmlXPathCompiledEval: evaluation failed
經過一番尋找在互聯網上,我同時看到代碼完成了這一點,人們說這是不可能的。
所以我的問題是雙重的...
我可以選擇基於一個變量的特定節點?
如果不是,甚至可以這樣做嗎?
哪條線是線92? – 2011-06-09 16:42:02
第92行包含在「output_person」模板中。我的主要問題是錯誤xmlXPathCompiledEval:評估失敗。 – 2011-06-09 16:48:35
錯誤似乎提到一個未聲明的已使用變量('$ IMAGE')。但是,您所展示的代碼中沒有「$ IMAGE」變量。也許你的_choose code_是錯誤的選擇:)給我們正確的上下文。更多的,這看起來不像是聲明變量的正確方法。 – 2011-06-09 16:56:24