当前位置: 首页 > 知识库问答 >
问题:

如何使用apply-templates从一个xml节点集中选择数据

阴雪风
2023-03-14
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="friends.xsl"?>
<root>
<report name="Type1">
<Datarow>
<Name>Fred</Name>
<Age>39</Age>
</Datarow>
<Datarow>
<Name>George</Name>
<Age>41</Age>
</Datarow>
</report>
<report name="Type2">
<Datarow>
<Name>Sheila</Name>
<Age>20</Age>
</Datarow>
<Datarow>
<Name>Susie</Name>
<Age>23</Age>
</Datarow>
</report>
</root>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="report[@name='Type1']">
<table>
<tr><td>Name</td><td>Age</td></tr>
<xsl:apply-templates select="Datarow"/>
</table>
</xsl:template>

<xsl:template match="Datarow">
<tr><td> <xsl:value-of select="Name"/></td>
<td><xsl:value-of select="Age"/></td></tr>
</xsl:template>
</xsl:stylesheet>

我的理解是,第一个template match语句将节点指针设置在报表名称属性为“Type1”的XML报表节点。然后我有一个apply templates选择looking for DataRow。这与我的Datarow模板匹配,该模板将返回名称和年龄详细信息。

问题是,它将返回Type1报表的名称和时间(按我指定的格式设置在表中),但随后我将Type2报表节点中的文本作为未格式化文本获取:

<div id="result_output">
<table style="border: solid 1px;">
<tbody><tr>
<td>Name</td>
<td>Age</td>
</tr>
<tr>
<td>Fred</td>
<td>39</td>
</tr>
<tr>
<td>George</td>
<td>41</td>
</tr>
</tbody></table>


Sheila
20


Susie
23


</div>

我做错了什么?

共有2个答案

岳良策
2023-03-14
热门标签
雷晋
2023-03-14
相关问题
 类似资料:
  • 问题内容: 我有一个xform文档 我想使用xpath和jdom从xform中选择数据元素 似乎工作正常,并选择title元素,但 不选择模型元素。我想这与名称空间有关。 问题答案: 一些东西。您 确实 应该使用JDOM 2.0.x …(最新版本2.0.5)。2.0.x版本中的XPath API远远优于JDOM 1.x中的XPath API:请参阅https://github.com/hunter

  • 如果我有 如果我想选择包含td的a,我该怎么做? 我测试过: 但是我要获得td节点,我要获得a节点。如何使用XPath实现这一点?

  • 问题内容: 我有以下HTML标记: 当我使用CSS选择器时,我得到了。 不幸的是,我不能更改标记,而只能使用CSS选择器,因为我使用的是聚合RSS提要的系统。 是否有我只能接受文本节点的CSS选择器?具体在这个例子中? 问题答案: 这里的问题是您写入屏幕的内容没有显示在DOM:P中。 也似乎还行不通(至少在Safari 6.0.3中对我来说),或者它根本还没有产生预期的结果。 最后是属性选择器,使

  • 问题内容: 我想获取一个元素的所有后代文本节点,作为jQuery集合。最好的方法是什么? 问题答案: jQuery对此没有方便的功能。您需要结合使用,将仅提供子节点,但包括文本节点,与结合,将提供所有后代元素,但不提供文本节点。这是我想出的: 注意:如果您使用的是jQuery 1.7或更早的版本,则上面的代码将不起作用。 要解决此问题,请替换为。从1.8开始不推荐使用。 与纯DOM方法相比,这效率

  • 从xml中,我需要获得每个节点的名称和面积。 我知道示例xpath,比如,

  • 问题内容: 我正在写一个selenium测试用例。这是我用来匹配数据表中所有“修改”按钮的xpath表达式。 我的问题是,如何按索引访问匹配的节点集?我尝试过 和 但是两者都没有。.我也尝试了XPath checker(一个firefox扩展名)。总共找到13个匹配项,那么我完全不知道如何选择其中之一。 或者XPath是否支持指定选择的不在同一父节点下的节点? 问题答案: 这是一个常见问题解答 :