您好我无法链接我的XML和XSLT,我的XML很长但是提取,问题是我的XSLT没有格式化它,我试图让我的XML在标题下显示在彼此之下。请原谅我,但英语不是我的第一语言
XML:
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="Product_List.xsl"?>
<ProductCatalogue>
<drinks>
<product>
<name Product_Code="D001">Lemonade</name>
<price>6.50</price>
<amount>20</amount>
<supplier>Coca-Cola</supplier>
</product>
</drinks>
</ProductCatalogue>
XSLT
<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h3>Product List</h3>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="drinks">
<div style="color:#0000FF">
<h3>
<xsl:value-of select="name"/>
</h3>
</div>
<div>
<xsl:value-of select="name@Product_code"/>
</div>
<p>Price : <xsl:value-of select="price"/></p>
<p>Supplier : <xsl:value-of select="supplier"/></p>
<p>Amount : <xsl:value-of select="amount"/></p>
</xsl:template>
</xsl:stylesheet>
答案 0 :(得分:1)
我认为我的模板存在问题,但我不确定它是如何固定的
是的,您的模板确实存在问题。使转换实际输出值的最简单方法是更改第二个模板匹配,最初是
<xsl:template match="drinks">
到
<xsl:template match="product">
在此模板中,您选择name
和price
等元素,这些元素是product
的子元素,而不是drinks
。
另外,更改
<xsl:value-of select="name@Product_code"/>
到
<xsl:value-of select="name/@Product_Code"/>
XML及与之相关的所有技术区分大小写 - Product_code
与Product_Code
不同。
然后,输出将是
<html>
<body>
<h3>Product List</h3>
<div style="color:#0000FF">
<h3>Lemonade</h3>
</div>
<div>D001</div>
<p>Price : 6.50</p>
<p>Supplier : Coca-Cola</p>
<p>Amount : 20</p>
</body>
</html>