java - 使用 XSLT 中的 id 选择 XML 值

标签 java xml pdf xslt

我正在尝试使用 XSLT 转换来转换 XML 文档,并且想知道是否可以获取具有另一个属性值的 XML 元素。

<Question>
<text id="154014">Email</text>
<answer><a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="6d5c5f5e2d0a000c0401430e0200" rel="noreferrer noopener nofollow">[email protected]</a></answer>
</Question>

<Question>
<text id="154015">Phone</text>
<answer>123456</answer>
</Question>

所以我的问题是,如果我的 text/@id 值为 154014,我需要得到答案 [email protected]

我无法使用 <xsl:value-of select="text[@id='154014']" />,因为它将采用不需要的 xml 元素。

最佳答案

实现此目的的另一种方法是通过 key 。像这样定义一个键,通过 text/@id

查找 Question 元素
 <xsl:key name="questions" match="Question" use="text/@id" />

然后要获取 id 的相关答案,请执行以下操作...

<xsl:value-of select="key('questions', '15184')/answer" />

或者,使用参数而不是硬编码值

<xsl:value-of select="key('questions', $id)/answer" />

参见http://xsltfiddle.liberty-development.net/nc4NzRv

关于java - 使用 XSLT 中的 id 选择 XML 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53616163/

相关文章:

java - 模拟抛出异常的服务?

xml - 需要用 xmlpath/xmlsearch 提取数据

php - 在浏览器中从mysql数据库查看pdf文件

java - 根据第一个选择框的选择填充第二个选择框

java - JPanel布局问题

android - 单选按钮组在某些 Android 设备中显示不佳

php - 如何使用 simplexml xpath 函数获取根目录

html - 如何打印完全适合 A4 纸的 HTML 表格

node.js - 解密有内容的加密pdf后,解密结果为空

java - 对 'Index'数组进行排序