我無法在下面的示例代碼中獲取id()函數在我的xslt轉換中工作,我不知道爲什麼。當我將data.xml加載到瀏覽器中時,我期望看到每個樣式表/轉換僅顯示'BC'項目的大小值&。有什麼建議麼?供參考:我已經調整了another site的例子。無法讓XSLT select id()函數成功運行
文件:transform.xslt
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes" encoding="UTF-8" />
<xsl:template match="/">
<html>
<body>
<xsl:value-of select="id('BC')/name" />
<xsl:value-of select="id('BC')/size" />
</body>
</html>
</xsl:template>
文件:data.xml中
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="transform.xslt" ?>
<provinces xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="data.xsd">
<province id="AB">
<name>Alberta</name>
<size>33</size>
</province>
<province id="BC">
<name>British Columbia</name>
<size>44</size>
</province>
<province id="MB">
<name>Manitoba</name>
<size>55</size>
</province>
</provinces>
文件:data.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="provinces">
<xs:complexType>
<xs:sequence>
<xs:element ref="province" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="province">
<xs:complexType>
<xs:sequence>
<xs:element name="name" />
<xs:element name="size" />
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="required"/>
</xs:complexType>
</xs:element>
</xs:schema>
您使用的是哪種XSLT處理器? – 2012-02-13 17:31:16
目標是使用Firefox或其他現代瀏覽器(我推測)中的XSLT處理器。它將評估樣式表引用。我沒有得到一個明確的錯誤,當加載上面的XML文件,所以我假設代碼是合法的,不是?你認爲XML文件中的規範可能有問題嗎? – Brian 2012-02-14 03:27:54