这是我的 XML 片段。我正在使用 MOXy JAXB 扩展来使用 XPath 直接访问我感兴趣的值。
<GSP>
<RES>
<R N="1">
<PageMap>
<DataObject type="group">
<Attribute name="name" value="some name"/>
<Attribute name="location" value="Miami, FL"/>
</DataObject>
<DataObject type="organization">
<Attribute name="name" value="ABC Corp"/>
</DataObject>
</PageMap>
</R>
<R N="2">
<PageMap>
<DataObject type="group">
<Attribute name="name" value="new name"/>
<Attribute name="location" value="Boise, ID"/>
</DataObject>
<DataObject type="organization">
<Attribute name="name" value="IBM Corp"/>
</DataObject>
</PageMap>
</R>
</RES>
</GSP>
我有以下映射。第一个有效,但接下来的两个无效。
@XmlPath("PageMap/DataObject[@type='group']/Attribute[@name='location']")
Attribute groupLocation;
@XmlPath("PageMap/DataObject[@type='group']/Attribute[@name='name']")
@XmlAttribute(name="value")
String groupName;
@XmlPath("PageMap/DataObject[@type='organization']/Attribute[@name='name']")
@XmlAttribute(name="value")
String organization;
对于第一个,我的 Attribute 对象的名称和类型都有 @XmlAttribute。 我希望能够只获取值,而不是检查对象是否为 null(在属性的情况下)然后获取值。
我在这里做错了什么?
最佳答案
我能够弄清楚自己。我不得不使用/@value。这是正确的代码。
@XmlPath("PageMap/DataObject[@type='group']/Attribute[@name='name']/@value")
String groupName;
@XmlPath("PageMap/DataObject[@type='organization']/Attribute[@name='name']/@value")
@XmlAttribute(name="value")
String organization;
关于java - JAXB - 如何使用 MOXy XPath 提取属性值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23303596/