我想查看以下xml文件中是否存在具有指定名称的主题元素。
input.xml中
<data>
<artifacts>
<document id="efqw4eads">
<name>composite</name>
</document>
<theme id="1">
<name>Terrace</name>
</theme>
<theme id="2">
<name>Garage</name>
</theme>
<theme id="3">
<name>Reception</name>
</theme>
<theme id="4">
<name>Grade II</name>
</theme>
</artifacts>
</data>
我有以下代码。从不执行return方法的true语句。 answer
始终包含空值。
public boolean themeExists(String name, Data data){
String expression = "artifacts/theme[name='"+name+"']/name/text()";
String answer = jaxbContext.getValueByXPath(data, expression, null, String.class);
if(answer == null || answer.equals("")){
return false;
}
return true;
}
答案 0 :(得分:1)
在第一个轴步骤中没有找到<artifacts/>
个元素。您的XPath表达式应该类似于
String expression = "data/theme[name='"+name+"']/name/text()";
答案 1 :(得分:1)
EclipseLink JAXB (MOXy)目前不支持此用例。我打开了以下增强功能,您可以用它来跟踪我们的进度: