gpt4 book ai didi

java - 解析 xml 时检查属性是否存在

转载 作者:行者123 更新时间:2023-12-02 11:21:32 26 4
gpt4 key购买 nike

嗨,我正在使用解析 xml 的代码

<a>
<n>SomeVal</n>
<c oldval="1">2</c>
<a>

解析 xml 的 java 代码使用 dom4j (valueOf) 来解析提供 xpath 表达式的标签的值。可以通过使用像“c/@oldval”这样的 xpath 表达式来获取 oldval 属性。我试图解决的问题是如何判断属性是否存在。因为我需要区分 oldval 属性不存在的情况和存在但为空的情况。下面的两个 xml 都会为 oldval 返回相同的值。

<a>
<n>SomeVal</n>
<c>2</c>
<a>

And

<a>
<b>SomeVal</b>
<c oldval="">2</c>
<a>

最佳答案

您可以通过 XPath 检查包含属性的情况:

/a/c[@oldval]

如果 oldval 属性存在,这将返回您的情况。如果不存在,请再次检查该节点是否存在

/a/c

或者,您首先获取节点

/a/c

现在您检查是否包含该属性

Element element = (Element) node;
String oldvalStr = element.attributeValue("oldval");

您也可以在 xpath 中完全进行测试,但不建议您这样做,因为 java 代码对于所有开发人员来说都很容易理解

关于java - 解析 xml 时检查属性是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49885244/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com