如何在 XSLT 中获取这些特定类型的 ID?

  • 本文关键字:类型 ID XSLT 获取 xml xslt
  • 更新时间 :
  • 英文 :


我是XSLT的初学者,最近才开始学习它。我在尝试基于下面的XML文件打印某个值以HTML格式显示时遇到了问题。从本质上讲,我希望XSL文件创建的HTML页面只显示幻想类型的所有图书ID,其中包括"bk102、bk102、bk104和bk105"。我试了一段时间,但老实说,我不知道该怎么做。

如有任何帮助,我们将不胜感激,对给您带来的麻烦深表歉意,并提前向您表示感谢。

XML文件

<?xml version = "1.0"?>
<?xml-stylesheet type = "text/xsl" href = "books3.xsl"?>
<catalog>
<book id = "bk101">
<author> Gambardella, Matthew </author>
<title> XML Developer's Guide </title>
<genre> Computer </genre>
<price> 44.95 </price>
<publish>
<publish_date> 2000 </publish_date>
<publisher> Wiley </publisher>
</publish>
<description> An in-depth look at creating applications with XML. </description>
</book>
<book id = "bk102">
<author> Ralls, Kim </author>
<title> Midnight Rain </title>
<genre> Fantasy </genre>
<price> 5.95 </price>
<publish>
<publish_date> 2000 </publish_date>
<publisher> Penguin </publisher>
</publish>
<description> A former architect battles corporate zombies, an evil sorceress, and her own childhood to become queen of the world. </description>
</book>
<book id = "bk103">
<author> Corets, Eva </author>
<title> Maeve Ascendant </title>
<genre> Fantasy </genre>
<price> 5.95 </price>
<publish>
<publish_date> 2000 </publish_date> 
<publisher> Penguin </publisher>
</publish>
<description> After the collapse of a nanotechnology society in England, the young survivors lay the foundation for a new society. </description>
</book>
<book id = "bk104">
<author> Corets, Eva </author>
<title> Oberon's Legacy </title>
<genre> Fantasy </genre>
<price> 5.95 </price>
<publish>
<publish_date> 2001 </publish_date> 
<publisher> Penguin </publisher>
</publish>
<outOfPrint/>
<description> In post-apocalypse England, the mysterious agent known only as Oberon helps to create a new life for the inhabitants of London. Sequel to Maeve Ascendant. </description>
</book>
<book id = "bk105">
<author> Corets, Eva </author>
<title> The Sundered Grail </title>
<genre> Fantasy </genre>
<price> 5.95 </price>
<publish>
<publish_date> 2002 </publish_date>    
<publisher> Penguin </publisher>
</publish>
<description> The two daughters of Maeve, half-sisters, battle one another for control of England. Sequel to Oberon's Legacy. </description>
</book>
<book id = "bk106">
<author> Randall, Cynthia </author>
<title> Lover Birds </title>
<genre> Romance </genre>
<price> 4.95 </price>
<publish>
<publish_date> 2000 </publish_date>    
<publisher> Whitehouse </publisher>
</publish>
<description> When Carla meets Paul at an ornithology conference, tempers fly as feathers get ruffled. </description>
</book>
<book id = "bk107">
<author> Thurman, Paula </author>
<title> Splish Splash </title>
<genre> Romance </genre>
<price> 4.95 </price>
<publish>
<publish_date> 2000 </publish_date>    
<publisher> Whitehouse </publisher>
</publish>
<description> A deep sea diver finds true love twenty thousand leagues beneath the sea. </description>
</book>
<book id = "bk108">
<author> Knorr, Stefan </author>
<title> Creepy Crawlies </title>
<genre> Horror </genre>
<price> 4.95 </price>
<publish>
<publish_date> 2000 </publish_date>    
<publisher> Wiley </publisher>
</publish>
<outOfPrint/>
<description> An anthology of horror stories about roaches,centipedes, scorpions  and other insects. </description>
</book>
<book id = "bk109">
<author> Kress, Peter </author>
<title> Paradox Lost </title>
<genre> Science Fiction </genre>
<price> 6.95 </price>
<publish>
<publish_date> 2000 </publish_date>    
<publisher> Penguin </publisher>
</publish>
<description> After an inadvertant trip through a HeisenbergUncertainty Device, James Salway discovers the problems of being quantum. </description>
</book>
<book id = "bk110">
<author> O'Brien, Tim </author>
<title> Microsoft .NET: The Programming Bible </title>
<genre> Computer </genre>
<price> 36.95 </price>
<publish>
<publish_date> 2000 </publish_date>    
<publisher> Penguin </publisher>
</publish>
<description> Microsoft's .NET initiative is explored in detail in this deep programmer's reference. </description>
</book>
<book id = "bk111">
<author> O'Brien, Tim </author>
<title> MSXML3: A Comprehensive Guide </title>
<genre> Computer </genre>
<price> 36.95 </price>
<publish>
<publish_date> 2000 </publish_date>    
<publisher> Penguin </publisher>
</publish>
<outOfPrint/>
<description> The Microsoft MSXML3 parser is covered in detail, with attention to XML DOM interfaces, XSLT processing, SAX and more. </description>
</book>
<book id = "bk112">
<author> Galos, Mike </author>
<title> Visual Studio 7: A Comprehensive Guide </title>
<genre> Computer </genre>
<price> 49.95 </price>
<publish>
<publish_date> 2001 </publish_date> 
<publisher> Wiley </publisher>
</publish>
<description> Microsoft Visual Studio 7 is explored in depth,looking at how Visual Basic, Visual C++, C#, and ASP+ are integrated into a comprehensive development environment. </description>
</book>
</catalog>

XSLT文件

<?xml version = "1.0"?>
<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0">
<xsl:output method = "html"/>
<xsl:template match = "/">
<html>
<body>
<xsl:for-each select = "catalog/book">
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

我猜你想做这样的事情:

<xsl:stylesheet version = "1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output method="html"/>
<xsl:template match="/catalog">
<html>
<body>
<xsl:for-each select="book[normalize-space(genre)='Fantasy']">
<p>
<xsl:value-of select="@id" />
</p>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

相关内容

最新更新