带有通配符的Xpath返回部分节点名称

时间:2011-06-14 09:38:16

标签: java xpath

我是Xpath的新手,正在尝试解析以XML格式保存的UML模型。 我在表单中有一些节点: -

<ModelProfile:create xmi:id='_16_0_1_187c046a_1307545286478_527165_409' base_Element='_16_0_1_187c046a_1307545286478_986851_398'/>

<ModelProfile:get xmi:id='_16_0_1_187c046a_1307545286478_698482_412' base_Element='_16_0_1_187c046a_1307545286478_639036_401'/>

我有base_Element值并知道节点以ModelProfile:开头,但我需要得到ModelProfile:字符串后的值 - 即单词{{1}在上面的两个例子中,或"get"

如何在Xpath(Java中)中执行此操作?

由于

萨拉

2 个答案:

答案 0 :(得分:0)

您需要根据它们在文档中的显示位置来识别元素,例如获取所有“umlModel”元素的子元素。之后,拔出本地名称(“获取”或“创建”位)很简单。

“ModelProfile”部分是将绑定到URI的名称空间前缀。在使XPath按预期工作之前,您需要了解命名空间的工作方式。 w3c学校介绍似乎是合理的:http://www.w3schools.com/xml/xml_namespaces.asp

答案 1 :(得分:0)

假设您有registered the ModelProfile namespace URI,您可以使用:

"//ModelProfile:*[@base_Element='" + yourBaseElementValue + "']"

获取具有该特定base_Element属性值的所有节点。

从那里开始,您可以使用返回节点的nodeName属性。