【问题标题】:How to find element type in XPath如何在 XPath 中查找元素类型
【发布时间】:2013-09-21 14:42:30
【问题描述】:

我有一个带有附加架构的 XML,有没有办法确定一个元素是否属于附加架构中定义的复杂类型?

例如:

架构

<element name="Cosmin" type="CosminType" />
<element name="Cosmin2" type="CosminType" />

XML

<parent>
    <cosmin>bla</cosmin>
</parent>

我想创建一个XPath 来识别CosminType 类型的所有元素,无论是Cosmin 还是Cosmin2

我想知道是否有类似的东西:

//parent/*[@type="CosminType"]

我尝试了@xsi:type,但它不起作用。如果没有任何效果,我会尝试在CosminType 中找到独特的东西并获得parent,在我的情况下将是CosminCosmin2。但这不是一个很好的解决方案。

【问题讨论】:

标签: xml xpath schema


【解决方案1】:

首先你需要元素名称,因为这个需要在附加的XSD中搜索:

/parent/cosmin/name()

这个应该用于在附加的 XSD 中搜索,例如:

document('attached xsd')//element[@name=/parent/cosmin/name()]/@type

希望对你有帮助

【讨论】:

  • 嘿感谢您的快速回答,但不希望在 xsd 中搜索。是不是有一些伪属性,即使它们实际上不在 XML 中,也可以从附加的模式中推断出来?
  • 我不知道或曾经使用过
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-08
  • 2020-05-02
  • 1970-01-01
  • 2018-01-11
  • 2019-05-08
  • 1970-01-01
相关资源
最近更新 更多