如何在XPath中查找元素类型

时间:2013-09-17 08:41:01

标签: xml xpath schema

我有一个附加架构的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。但这不是一个很好的解决方案。

1 个答案:

答案 0 :(得分:0)

首先你需要元素名称,因为需要搜索这个元素名称:

/parent/cosmin/name()

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

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

希望这有帮助