【问题标题】:How so I access a variable XML element using XSL?如何使用 XSL 访问可变 XML 元素?
【发布时间】:2020-05-12 21:17:16
【问题描述】:

我有一个带有可变标签(l0、l1 等)的 XML 文件。

如何在 XSL 中引用这些标签?

我可以在 RuleXMLAsString 上循环:

<xsl:for-each select="TPersistent_Promotion/RuleXMLAsString">

但不能访问其中的“数据”标签,因为 l0、l1 等标签是可变的。

我可以直接在 XSL 中访问每个“数据”标签吗?

例如在标签上搜索通配符?

<RuleXMLAsString Count="2">
  <l0><data>test1</data></l0>
  <l1><data>test2</data></l1>
</RuleXMLAsString>

【问题讨论】:

  • 您可以使用* 节点测试访问您不知道名称的元素(不是标签)。如果您想要更详细的答案,请显示minimal reproducible example 和预期输出。
  • 感谢您对 * 的搜索工作!

标签: xml xslt


【解决方案1】:

最简单的方法是路径*/data

如果您想更具体并且只匹配 l[0-9] 形式的名称,那么 (a) 您应该询问这是否是一个合理的 XML 设计,如果答案是肯定的,那么 (b) 在 XPath 2.0你可以使用*[matches(local-name(), 'l[0-9]')]/data,或者在XPath 1.0 中使用*[translate(local-name(), '0123456789', '0000000000') = 'l0']/data

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多