【问题标题】:Get a value from a XML in XSL document version 1.0从 XSL 文档 1.0 版中的 XML 获取值
【发布时间】:2013-11-28 12:30:39
【问题描述】:

我有一个问题。我正在 PDF 文档中写一个表格。 我得到了所有正确的值,除了一个。

我从 XML 中获取一个值,例如调用它 然后我需要在同一个 XML 文档中找到该名称,并从它出现的其他位置获取另一个值:

看看这个示例 XML 文档:

               </Comment>
                   (...)




                  <Comment>
                  </Comment>

所以我在里面写了名字

需要保存那个值,在Tset节点中找到,在xsl代码中State、Program name和Tool Name后面写上ToolAddr值。

我的 xsl 显示名称并希望下一个单元格显示按名称查找的大小:

我需要这个,因为 Tset 是所有工具的列表,并且在加工中我使用的工具不是正常顺序,并且可能多次需要工具的工具地址...

求助!!!

【问题讨论】:

  • 如果您得到了除一个之外的所有正确值,请分享您的 XSLT 样式表。那么你就更有可能得到对你立即有用的答案。
  • 我知道如何通过直接方式获取值,但我需要通过名称搜索来获取它...

标签: xml xslt xsl-fo altova


【解决方案1】:

因为这个问题有点模糊,所以很难给出一个准确的答案,但听起来你可以使用 xsl:key 来查找你的值(或值)想要。

如果您想查找 code 元素,但要查找它们的 product/Name,您可以像这样定义一个键:

<xsl:key name="lookupcode" match="code" use="following-sibling::product[1]/Name" />

因此,这匹配 code 元素,但允许通过其后面的第一个 Product 元素的“名称”来查找它们。 (注意,如果您实际使用命名空间,请记住将相关前缀放在 xxx 之前)。

然后,例如,要使用此键查找“asdf”值的代码,您可以这样做

<xsl:value-of select="key('lookupcode', 'asdf')" />

在一个更实际的例子中,如果您想在 zzz 下查找 NAME 元素的代码,您的代码可能如下所示:

<xsl:for-each select="zzz/NAME">
    Name: <xsl:value-of select="." />
    code: <xsl:value-of select="key('lookupcode', .)" />
</xsl:for-each>

在一个更实际的例子中,这是一个输出 HTML 表格的简单例子。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:output omit-xml-declaration="yes" indent="yes" />

   <xsl:key name="lookupcode" match="code" use="following-sibling::product[1]/Name" />

   <xsl:template match="yyyy">
      <table>
         <xsl:for-each select="zzz/Name">
            <tr> 
               <td><xsl:value-of select="." /></td>
               <td><xsl:value-of select="following-sibling::DATE[1]" /></td>
               <td><xsl:value-of select="key('lookupcode', .)" /></td>
            </tr>
         </xsl:for-each>
      </table>
   </xsl:template>
</xsl:stylesheet>

这应该很容易转换为输出 xsl:fo。 “tr”元素对应“fo:table-row”,“td”元素对应“fo:table-cell”。

【讨论】:

  • 我更新了 xml 以及我想要的布局...我需要搜索名称,使用变量来匹配名称并获取大小值。
  • 我已经修改了我的答案以解释它如何与您的新 XML 结构一起使用。
  • 你能帮我在我的代码中实现它吗...该代码是由我不拥有的软件生成的,所以要更改它我需要在记事本中进行... -.-
  • Cahnged xml 代码更接近真实的......我不能在这里展示真实的......所以我使用这个例子......
  • 我再次编辑了我的答案以使用这个最新示例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-07
  • 1970-01-01
  • 1970-01-01
  • 2011-06-17
  • 2019-11-06
相关资源
最近更新 更多