通过xsl将XML转换为HTML会导致以下问题:xsl中的键函数无法提供所需的输出

通过xsl将XML转换为HTML会导致以下问题:xsl中的键函数无法提供所需的输出,html,xml,xslt,Html,Xml,Xslt,我正在测试一个XSL代码,但它没有提供所需的输出 XML 1. 茶叶-乌龙茶 $4.57 1. 2. 豆类-海军蓝,干 $11.96 1. 1. 亚历克西斯圣堂武士 2. 瓦伦丁·麦克卢 3. 比约恩·萨克斯比 XSL 生产线 普罗杜克陶斯瓦尔德昆登酒店 Für jeden Kunden是一家生产veranschaulicht的公司。 这是一个很好的例子。 生产线 生产线 贝施雷邦: Preis: 身份证: 施利森 > 期望输出: ID为1的客户应同时获得这两种产品

我正在测试一个XSL代码,但它没有提供所需的输出

XML


1.
茶叶-乌龙茶
$4.57
1.
2.
豆类-海军蓝,干
$11.96
1.
1.
亚历克西斯圣堂武士
2.
瓦伦丁·麦克卢
3.
比约恩·萨克斯比
XSL


生产线
普罗杜克陶斯瓦尔德昆登酒店
Für jeden Kunden是一家生产veranschaulicht的公司。
这是一个很好的例子。
生产线

生产线
  • 贝施雷邦:

  • Preis:

  • 身份证:

施利森 >
期望输出: ID为1的客户应同时获得这两种产品,因为他们都使用数字1作为潜在客户。为什么在我将文件转换成html后,输出只显示一个产品
客户说。

请考虑以下两个说明:

<xsl:for-each select="key('keyToProduct',id)">
  <xsl:if test="key('keyToProduct',id)/lead &gt; 0">


我强烈期望您在
key('keyToProduct',id)
上的两个调用返回相同的结果。但是外部表达式会更改上下文,因此外部表达式中的
child::id
与内部表达式中的
child::id
不同。将内部调用替换为“”。类似地,对
key()

的其他调用请发布一个,而不是断章取义的片段(也不是60多行代码)。还包括expected result.XML:1片茶叶-乌龙茶$4.57 20 2颗豆类-海军蓝,干咖啡$11.96 70 1亚历克西斯圣堂武士2瓦伦丁·麦格卢·希达武德,欢迎来到Stack Overflow。请不要在评论中发布那么多代码。您可以编辑自己的问题,以使用请求的内容更新问题。然而,您似乎通过
key('keyToProduct',id)
来解析客户的产品。您的数据中缺少客户和产品的关系。请通过编辑您的问题向我们展示。嘿,非常感谢您的提示。。。我刚刚编辑了我的问题,希望现在有意义。。第一次使用堆栈溢出,很抱歉,
的上下文是什么?
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:key name="keyToProduct" match="product" use="lead"/>
  <xsl:template match="/">
    <html>
      <head>
        <title>Produktübersicht</title>
        <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" 
          rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" 
          crossorigin="anonymous"/>
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.bundle.min.js" 
          integrity="sha384-b5kHyXgcpbZJO/tY9Ul7kGkf1S0CWuKcCD38l8YkeH8z8QjE0GmW1gYU5S9FOnJ0" 
          crossorigin="anonymous"></script>
      </head>
      <body style="background-color:beige;">
        <div class="container">
          <h1 style="background-color:beige; color:blue;">Produktauswahl der Kunden</h1>
          <h3> Für jeden Kunden wird hier eine Gesamtauflistung aller eingekaufter Produkte veranschaulicht. 
            Ein Kunde kann sowohl kein Produkt oder aber sehr viele gekauft haben.</h3>
          <xsl:for-each select="data/customers/customer">
            <div class="card my-2">
              <div class="card-header">
                <xsl:value-of select="name"/>
              </div>
              <div calss="card-body">
                <button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs- 
                  target="#exampleModal{id}">
                  <p>Produktübersicht</p>
                </button>
                <div class="modal fade" id="exampleModal{id}" tabindex="-1" aria-labelledby="exampleModalLabel" aria- 
                  hidden="true">
                  <div class="modal-dialog">
                    <div class="modal-content">
                      <div class="modal-header">
                        <h5 class="modal-title" id="exampleModalLabel">Produktübersicht</h5>
                        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                      </div>
                      <div class="modal-body">
                        <xsl:for-each select="key('keyToProduct',id)">
                          <xsl:if test="key('keyToProduct',id)/lead &gt; 0">
                            <ul class="list-group">
                              <li class="list-group-item">
                                <p>Beschreibung:
                                  <xsl:value-of select="key('keyToProduct', id)/description"/></p>
                              </li>
                              <li class="list-group-item">
                                <p>Preis:
                                  <xsl:value-of select="key('keyToProduct', id)/price"/></p>
                              </li>
                              <li class="list-group-item">
                                <p>ID:
                                  <xsl:value-of select="key('keyToProduct', id)/id"/></p>
                              </li>
                            </ul>
                          </xsl:if>
                        </xsl:for-each>
                      </div>
                      <div class="modal-footer">
                        <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Schliessen</button>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </xsl:for-each>
        </div>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>>
<xsl:for-each select="key('keyToProduct',id)">
  <xsl:if test="key('keyToProduct',id)/lead &gt; 0">