gpt4 book ai didi

xml - XSL : Xpath Query in Isn't Returning Any Results

转载 作者:行者123 更新时间:2023-12-02 11:46:25 24 4
gpt4 key购买 nike

注 1:这是我的第一个问题。请温柔点。
注2:是的,这是作业。我讨厌寻求帮助,但我已经碰壁了。如果您不想告诉我答案,建议在哪里寻找答案也将同样受到赞赏。谢谢。

我正在尝试编写一个 XSLT 表来查看目标 XML 文件中每个 DVD 元素的流派属性。它应该返回一个列表,其中每个不同的值仅列出一次,并计数找到每个值的次数。

我认为我的 XPath 是错误的。为了调试,我尝试使用 <xsl:value-of select="foo">语句来尝试不同的 XPath 查询,但我没有任何运气。

这是 XSL 文件(我已尝试将其简化)

<?xml version="1.0" encoding="UTF-8"?>
<!-- BrowseAllExample.xsl -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:key name="genres" match="DVD" use="@genre" />
<xsl:template match="/">
<html>
<head>
<title>Browse: DVDs by Genre</title>
<link href="../style/browseByGenre.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- TODO: insert page header here -->
<h2>Browse by Genre</h2>
<div>
<!-- This doesn't seem to select anything
I've tried lots of combinations with a test
xsl:value-of-select element, but nothing
seems to work as a selector except "*"
-->
<xsl:apply-templates select="/dvdlist/DVD[not(@genre=preceding-sibling/@genre)]"
mode="genreList">
<xsl:sort select="@genre"/>
</xsl:apply-templates>
</div>
</body>
</html>
</xsl:template>
<!--
List each genre and count titles in each
-->
<xsl:template match="DVD" mode="genreList">
<a href="#{generate-id()}"><xsl:value-of select="@genre"/></a> (<xsl:value-of
select="count(key('genres',@genre))"/>) -
</xsl:template>
</xsl:stylesheet>

以下是 XML 文件的相关部分:

<?xml version="1.0" encoding="UTF-8"?>
<!-- dvdlistExample.xml -->
<?xml-stylesheet type="text/xsl" href="BrowseAllExample.xsl"?>
<dvdlist xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://example.com/dvdlist ./schema/dvdlist.xsd"
xmlns="http://example.com/dvdlist">
<DVD genre="Comedy" itemnum="ID-20">
<title>American Wedding</title>
<year>2003</year>
<price>18.89</price>
<talent>
<director>Jesse Dylan</director>
<actor>Jason Biggs</actor>
<actor>Sean William Scott</actor>
<actor/>
</talent>
<ratings mpaa="NR" customer="3"/>
<pics id="ID-20">
<thumbnail>Wedding-small.jpg</thumbnail>
<large>Wedding-big.jpg</large>
</pics>
</DVD>
<DVD genre="Action" itemnum="ID-2">
<title>Badboys II</title>
<year>2003</year>
<price>20.27</price>
<talent>
<director>Michael Bay</director>
<actor>Will Smith</actor>
<actor>Martin Lawrence</actor>
</talent>
<ratings mpaa="R" customer="3"/>
<pics id="ID-2">
<thumbnail>Badboys-small.jpg</thumbnail>
<large>Badboys-big.jpg</large>
</pics>
</DVD>
<!--Other DVD entries removed to save space-->
</dvdlist>

最佳答案

How to 'select' from XML with namespaces?应该可以帮助您满足您的需要。

XML 命名空间只是一种实现 XML 元素和属性唯一性的方法。如果两个用户/公司/无论什么定义 <DVD>元素命名空间是它们保持分离的方式。例如,您可以处理两个不同的 <DVD>元素,方法是选择每个元素以及定义它的相应命名空间。

关于xml - XSL : Xpath Query in <xsl:apply-templates> Isn't Returning Any Results,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5695718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com