我需要解析静态JSP/HTML页面,以便在批处理模式下识别标记和标签。
程序将运行并读取给定WAR或文件夹中的视图文件,并对其进行解析。因为它不在运行时,所以DOM将不可用。
所以我需要一些关于可以使用XPath来完成的指导
发布于 2012-10-30 23:09:04
XPath被设计为仅用于XML文档。
因此,您必须寻找能够将JSP/HTML解析为XML文档的解析器。如果您使用的是JSPX而不是JSP,那么您只需要使用Java的内置JAXP就可以了。
InputStream input = getInputStreamOfJspOrHtml();
Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(input);
// ...然而,如果你使用的是遗留的JSP,可能充满了scriptlet,和/或不是格式良好的超文本标记语言(例如,使用<br>而不是<br/>),那么你最好的选择是使用一个宽松的超文本标记语言解析器,它可以容忍无效的语法,比如JTidy。
InputStream input = getInputStreamOfJspOrHtml();
Document document = new Tidy().parseDOM(input, null);
// ...无论哪种方式,一旦你有了org.w3c.dom.Document,你就可以像往常一样在上面运行XPath了。
https://stackoverflow.com/questions/13140059
复制相似问题