簡體   English   中英

如何將參數值傳遞給XSL?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM