我有以下 XML:
<rdr>
<details>
<detail>
<name>version</name>
<value>15.0</value>
</detail>
<detail>
<name>resolution</name>
<value>1080X1920</value>
</detail>
</details>
</rdr>
我将其编组为以下 Java bean:
import org.simpleframework.xml.Element;
import org.simpleframework.xml.Path;
import org.simpleframework.xml.Root;
@Root(name = "rdr", strict = false)
public class XmlBean {
@Path("details/detail[1]")
@Element(name = "value")
private String version;
@Path("details/detail[2]")
@Element(name = "value")
private String resolution;
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version;
}
public String getResolution() {
return resolution;
}
public void setResolution(String resolution) {
this.resolution = resolution;
}
}
我正在使用简单的 XML,版本 2.6.6 来实现这一点: http ://simple.sourceforge.net/
但是,我想做的是使用 XPath 中的名称元素。例如,我不想使用路径“details/detail[1]”,而是使用“details/detail[name=version]”。这不起作用,我得到一个 org.simpleframework.xml.core.PathException: Invalid index for path exception 返回。我试过用 ' 包围版本无济于事。根据我对 XPath 的理解,这是正确的语法: http ://www.w3schools.com/xpath/xpath_syntax.asp 任何人都可以确认这看起来是正确的吗?
我查看了简单 xml 库的源代码,它自己处理 XPath 处理,而不使用第 3 方库。我可以看到为什么它不起作用,因为它只接受数字并且会为任何不是数字的字符抛出异常。
我很想修复该库,但怀疑我做错了什么,并且可能有另一个我应该使用的注释或其他语法。
是否有另一个注释可以用来实现我想要做的事情?是否可以使用 Simple 来做我想做的事情?