我有一個XML文件,其屬性中包含XPath字符串。事情是這樣的 -
使用存儲在Xslt變量中的Xpath
<root>
<element name="A" visible="True" text="Display Text " selected="True" />
<element name="B" visible="True" text="DisplayText" visibilityCondition="//element[@name='A']/@selected" />
</root>
現在,使用XSLT我想根據的visibilityCondition以顯示或隱藏內容元素命名爲A.即
<xsl:for-each select="element">
<xsl:variable name="visibleCondition" select="@visibilityCondition" />
<xsl:choose>
<xsl:when test="boolean($visibleCondition)">
<xsl:when test="$visibleCondition">
<xsl:if test="$visibleCondition='True'">
...
</xsl:if>
<xsl:otherwise>
...
</xsl:otherwise>
</xsl:when>
</xsl:choose>
</xsl:foreach>
問題是如果條件永遠失敗以來,$ visibleCondition具有值
//element[@name='A']/@selected
而我想獲得XPath解析並匹配所選屬性中的實際值,即
True
。 我該如何去做到這一點?
請張貼XML更加小心。 「B」元素的'name'屬性的值沒有開始引號,'visibilityCondition'屬性不是有效的XPath表達式。 –
謝謝Mathias。我現在糾正了Xml。 –
你想要做什麼似乎是評估存儲在visibilityCondition屬性中的字符串爲xpath,這本來就不可能。這裏是一個類似的問題,我發現谷歌搜索[ XSLT:如何評估XSL構建的XPath表達式](http://stackoverflow.com/questions/9565358/solved-xslt-how-to-eval-an-xsl-constructed- xpath-expression) –