xslt - 使用 XSLT 键入 XML 搜索

标签 xslt xpath

我有 XML 代码:

<TestCases>
    <TestCase>
        <TestCaseElement>
            <Name><![CDATA[IP_EXTDEVICE]]></Name>
            <Tags>
                <Tag><![CDATA[Upperlimit]]></Tag>
            </Tags>
            <TaggedValues>
                <TaggedValue key="Upperlimit">
                    <value><![CDATA[4]]></value>
                </TaggedValue>
            </TaggedValues>
        </TestCaseElement>
    </TestCase>
</TestCases>

如何使用 XSLT 进行选择 值 4 ?

<小时/>
<xsl:template name="selectOwnTaggedValue">
    <xsl:value-of select="[normalize-space(value)]" />
</xsl:template>
<xsl:template match="/">
    <xsl:for-each select="TestCases/TestCase/TestCaseElement">
        <xsl:apply-templates select="selectOwnTaggedValue[TaggedValues[TaggedValue key="Upperlimit"]" />
    </xsl:for-each>
</xsl:template>

我的 XSL 代码无效,因为我不知道如何在转换中选择值 4

提前致谢

最佳答案

试试这个...

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>

<xsl:template match="/">
  <xsl:apply-templates select="*/TestCase"/>
</xsl:template>
      
<xsl:template match="TestCase">
  <xsl:value-of select="concat(
   'The upper limit for ',
  TestCaseElement/Name,
   ' is ',
  TestCaseElement/TaggedValues/TaggedValue[@key='Upperlimit']/value,
  '&#x0A;'
   )"/>
</xsl:template>
<小时/>

更新

针对示例输入运行此样式表的输出是...

The upper limit for IP_EXTDEVICE is 4

如果您想要不同的输出,请告诉我。

关于xslt - 使用 XSLT 键入 XML 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11651985/

相关文章:

xslt - 基于节点值的 xsl 和 sibling

xml - 使用 XSLT 将 XML 转换为具有最大宽度的文本

如果第一个 XML 父标签缺少子标签,Python XPath 和 ElementTree 将不起作用

xml - 在 XPath 表示法中,表达式//*[self::SOME_LABEL] 与//SOME_LABEL 有何不同?

xml - XSLT XML 到 XML 如果特定子节点不存在则删除节点

Python/ Selenium - "no such element: Unable to locate element"

html - 使用 XSLT 重现 XML 转换中的所有属性

ruby-on-rails - 如何使用 Ruby 和 REXML 获取 XML 页面的子节点

python - 如何在 XPath 选择中包含属性

python - XSLT 与 Python 的 lxml : Forbidden Variable?