使用xpath从xml标记获取属性

时间:2015-01-16 14:14:39

标签: java xml xpath

我有一个xml文件,我使用xpath /content返回以下行:

<content xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>

我怎样才能获得类型&#39; nil&#39;?我正在尝试编写一个测试,它将检查内容是否为空,如果没有内容,则会说nil =&#34; true&#34;否则它会给出类型,例如的xsi:type =&#34;字符串&#34;&GT;真

我已尝试//内容[@xsi]和// content / xsi但仍无法将其限制为我想要的部分。

我可以得到一个子字符串,但我认为必须有一种方法来使用xpath。

1 个答案:

答案 0 :(得分:0)

在您的代码段中:

<content xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>

有一个名称空间。虽然它不适用于元素content,但它确实适用于属性nil。顺便说一下,它是XML Schema规范中的一个属性。

要查找命名空间中的属性

  • 在您的应用程序中干净地注册此命名空间,并在任何XPath表达式中前缀该属性
  • 忽略路径表达式中的所有名称空间

您没有显示任何代码,因此我发现很难对第一个选项发表评论。第二个选项意味着路径表达式,如

//content[@*[local-name() = 'nil'] = 'true']

将选择content属性值为“true”的xsi:nil元素。