我想查看以下 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;
}

最佳答案

EclipseLink JAXB (MOXy) 目前不支持此用例。我打开了以下增强功能,您可以用来跟踪我们的进度:

  • http://bugs.eclipse.org/413823
  • 关于xpath - JAXB Moxy getValueByXpath 给出 null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17881850/

    10-12 04:57