我设置了一个 xpath 来搜索第一个和第二个标题,但是第二个标题显示为空白,我猜这一定很容易,但是我尝试更改路径名很多次,但我似乎无法解决它,然后我使用了让每个人找出我的 xml 文件是否不正确,但我的循环似乎很容易找到两者。
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:foo="blogschema.xsd"
exclude-result-prefixes="foo">
<xsl:output method ="html" indent ="no"/>
<xsl:template match="/">
<html>
<link rel ="stylesheet" type="text/css" href="blogStyle.css"/>
<body>
<ul class="menu">
<li><a href="#" class ="Part 1"><xsl:value-of select="//foo:Heading[1]"/> </a></li>
<li><a href="#" class ="Part 2"><xsl:value-of select="//foo:Heading[2]"/></a></li>
</ul>
<div id="heading">
<xsl:for-each select="//foo:Entry">
<!--<xsl:sort select="Heading"/> -->
<div class ="topNavigation"><a href="#home"><h3><xsl:value-of select="foo:Heading"/></h3></a></div>
</xsl:for-each>
<div class ="panes">
</div>
</div>
<div id ="blogpicture">
<div class="picture">
<div id="headerTitle"><h2><xsl:value-of select="//foo:Title"/></h2></div>
</div>
</div>
</body>
</html>
</xsl:template>
</xsl:transform>
我试图得到一个菜单,但我现在得到的只是菜单的第 1 部分,在 for 循环中我可以得到第 2 部分。另一种方法可能是坚持使用循环,并且当我循环时以某种方式更改类在循环期间(增加类 id)我的博客
<Entry>
<Heading id="101">Part 1</Heading>
<body>
<text>something interesting</text>
<pictures>pictures in the body</pictures>
<videos>Videos in the body</videos>
</body>
<labels>Seperate labels with commas</labels>
<date> 20121119</date>
<location>The location the blog was published</location>
</Entry>
<Entry>
<Heading id="102">Part 2</Heading>
<body>
<text>something</text>
<pictures>pictures in the body</pictures>
<videos>Videos in the body</videos>
</body>
<labels>Seperate labels with commas</labels>
<date> 2012-11-26Z</date>
<location>The location the blog was published</location>
</Entry>
<author>me</author>
我希望这是有道理的,我当前进入菜单的输出是第 1 部分,然后是“”,表示我应该有第 2 部分。然而,xsl 中的 for each 循环带来了第 1 部分和第 2 部分的标题