【发布时间】:2023-03-26 12:21:01
【问题描述】:
我有以下xml
<root xmlns="">
<General>
<Data>
<Number>123456</Number>
<Date>2018-10-22</Data>
<LineRefer>0001</LineRefer>
<LineRefer>0002</LineRefer>
</Data>
<Data>
<Number>789456</Number>
<Date>2018-10-22</Data>
<LineRefer>0003</LineRefer>
<LineRefer>0004</LineRefer>
</Data>
</General>
<Services>
<Details>
<LineNumber>0001</LineNumber>
<Description>test description</Description>
</Details>
<Details>
<LineNumber>0002</LineNumber>
<Description>test description</Description>
</Details>
<Details>
<LineNumber>0003</LineNumber>
<Description>test description</Description>
</Details>
<Details>
<LineNumber>0004</LineNumber>
<Description>test description</Description>
</Details>
</root>
我希望我可以分组得到这个结果
号码 123456
0001测试说明
0002测试说明
编号789456
0003测试说明
0004测试说明
这是我用于 xml 的 xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" />
<xsl:template match="/">
<html>
<head>
<title>HTML Document Example</title>
</head>
<body>
<div class="page">
<xsl:for-each select="root" >
<xsl:for-each select="Services/Details" >
<ul>
<li><xsl:value-of select="LineNumber" /> | <xsl:value-of select="Description" /> </li>
</ul>
</xsl:for-each>
</xsl:for-each>
</div>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
结果
0001 测试说明
0002测试说明
0003测试说明
0004测试说明
提前致谢
【问题讨论】:
-
欢迎来到 SO。你试过什么了 ?检查How to ask。此外,您的 XML 似乎不正确(可能是拼写错误?)
</Data>而不是</Date>而不是</Services> -
据我所知,数据已经分组了。您需要做的就是从相应的行中获取描述。为此,最好使用key。
-
@micheal.hor257k :我可以看到服务列表,但无法插入 Data 行。如何使用密钥?
-
恐怕我不明白你的意思。发布您当前的 XSLT,以便我们帮助您修复它。 -- 并尝试正确拼写我的名字,以便我收到通知。
-
听起来您正在选择
Services/Details元素,然后尝试获取关联的Data元素。如果是这样,您应该颠倒逻辑。从获取Data元素开始,对于每个Data元素,使用密钥获取服务。