[英]How to pass parameter value to XSL?
假設我有一個XSL,如下所示:
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="html" encoding="utf-8" omit-xml-declaration="yes" indent="yes"/>
<xsl:param name="sortKey" select="'firstname'"/>
</xsl:stylesheet>
然后是XML,如下所示
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="XYZ.xsl"?>
<ABC>
<firstname>GREG</firstname>
</ABC>
我想傳遞一個值從XML的XSL參數名字 。 我能這樣做嗎? 如果是,怎么樣?
從答案看來,這是不可能的。
如何從相同的XML讀取值並將其分配給參數呢? 能做到嗎? 如果有,怎么樣?
因為您要作為參數的值在基本XML中,所以您只需為參數輸入一個XPath表達式即可指定默認值。
<xsl:param name="sortKey" select="/ABC/firstname"/>
如果該值始終位於XML中,則僅使用變量在此處也將有效
<xsl:variable name="sortKey" select="/ABC/firstname"/>
然后,要使用此參數/變量,您只需執行以下操作
<xsl:template match="/">
<xsl:value-of select="$sortKey" />
</xsl:template>
這將簡單地輸出值GREG
假設您正在使用.NET進行轉換,則可以在這里找到該重復的問題的答案: 通過.NET將參數傳遞給XSLT樣式表
W3C尚未提出機制。 可以定義一個能夠執行此操作的新處理指令。 但是,如果您打算在瀏覽器或其他現有工具中使用它,將參數傳遞到通過處理指令調用的樣式表中不是可行的選擇。
另一種選擇是將“參數”放置在備用文檔中,並使用諸如document()
函數之類的東西加載它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.