Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java检查是否存在多个XML标记_Java_Xml - Fatal编程技术网

使用Java检查是否存在多个XML标记

使用Java检查是否存在多个XML标记,java,xml,Java,Xml,您好,我正在尝试使用Java阅读XML文档。在尝试获取文档中的内容之前,我想检查所有标记是否存在 我有这样的东西 String ToolVersion; if (element.getElementsByTagName("ToolVersion").getLength() > 0) { ToolVersion = element.getElementsByTagName("ToolVersion").item(0).getTextContent()

您好,我正在尝试使用Java阅读XML文档。在尝试获取文档中的内容之前,我想检查所有标记是否存在

我有这样的东西

String ToolVersion;

if (element.getElementsByTagName("ToolVersion").getLength() > 0) {
                    ToolVersion = element.getElementsByTagName("ToolVersion").item(0).getTextContent(); }

我有20多个XML标记,有没有一种方法可以在没有20个“IF”条件的情况下执行此操作?

需要考虑一些代码

String getData(Element e, String tagName){
    if (e.getElementsByTagName(tagName).getLength() > 0) {
        return e.getElementsByTagName(tagName).item(0).getTextContent(); 
    } else return null;
}


BODY

List<String> elementsList = Arrays.asList("ToolVersion", "ToolName", "SomethingElse");
Element e;
String tagData;

for(String tagName : elementsList){
    tagData = getData(e, tagName);
    //do something here
}
String getData(元素e,字符串标记名){
如果(e.getElementsByTagName(标记名).getLength()>0){
返回e.getElementsByTagName(标记名).item(0).getTextContent();
}否则返回null;
}
身体
List elementsList=Arrays.asList(“ToolVersion”、“ToolName”、“SomethingElse”);
元素e;
字符串标记数据;
for(字符串标记名:elementsList){
tagData=getData(e,标记名);
//在这里做点什么
}

您可以使用。它提供了marshaller和demarshaller,这将帮助您验证标记是否存在。

Foreach(标记列表中的标记:标记){if[retrive Tag].getLenght>0;}我的意思是,创建一个标记列表,然后循环。此链接可能会对您有所帮助。您不使用模式验证器的原因是什么?手工编写自己的代码进行验证似乎有点低技术。