Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.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,如果不使用XML解析器库,如何检查XML标记是否包含注释 下面是我提出的代码,它适用于包含在标记中的注释,但不适用于已经嵌套在另一个注释中的标记 <ppn>750000015</ppn> <ppn>750007015</ppn> <ocn></ocn> <!-- <inst> VU@</inst> is commented --> 75000015 750007015 Java代码:

如果不使用XML解析器库,如何检查XML标记是否包含注释

下面是我提出的代码,它适用于包含在标记中的注释,但不适用于已经嵌套在另一个注释中的标记

<ppn>750000015</ppn>
<ppn>750007015</ppn>
<ocn></ocn>
<!-- <inst> VU@</inst> is commented -->
75000015
750007015
Java代码:

 public static List<String> getTagList(String xml, String tag) {
        List<String> result = new ArrayList<>();
        if (xml != null && tag != null) {

            String startMarker = "<" + tag + "[\\s>]";
            Pattern pattern = Pattern.compile(startMarker);
            String endMarker = "</" + tag + ">";
            // Find the start of all such tags:
            Matcher matcher = pattern.matcher(xml);
            while (matcher.find()) {
                int startIndex = matcher.start();
                int endIndex = xml.indexOf(endMarker, matcher.start()) + endMarker.length();
                result.add(xml.substring(startIndex, endIndex));
            }
        }
        return result;
    }
publicstaticlist getTagList(字符串xml,字符串标记){
列表结果=新建ArrayList();
if(xml!=null&&tag!=null){
字符串startMarker=“]”;
Pattern=Pattern.compile(startMarker);
字符串endMarker=“”;
//查找所有此类标记的开头:
Matcher-Matcher=pattern.Matcher(xml);
while(matcher.find()){
int startIndex=matcher.start();
int endIndex=xml.indexOf(endMarker,matcher.start())+endMarker.length();
add(xml.substring(startIndex,endIndex));
}
}
返回结果;
}
不使用XML解析器库

根据定义,任何可靠地检测XML元素中的注释的方法都是解析XML。因此,您的选择是使用一个能正确完成这项工作的XML解析器库,还是编写一个不能完成这项工作的XML解析器


如果你的老板不让你使用现成的XML解析器来完成这项任务,那么他们就是无能的;与不称职的老板打交道的建议不在本论坛讨论范围之内。

有什么原因不能使用解析库吗?你不想重新发明一个轮子!是的,这家公司使用标准解析器处理各种问题,我不想使用它。他们也不允许我使用解析器。。我确信应该有某种方法来修改我的这段代码并添加这一部分。你需要构建一个最小状态机。您无法破解该代码;“。然后可以在上述代码中使用此新XML进行模式匹配。这样,输入中就不再有注释了。如果他们不允许您使用解析器,他们会允许您使用吗?我们需要一个“这是一个管理问题”结束/关闭主题原因:D