Java 使用VTD-xml在log4j.xml上使用XPath
我有这样的validLog4jXML字符串Java 使用VTD-xml在log4j.xml上使用XPath,java,xml,xpath,vtd-xml,Java,Xml,Xpath,Vtd Xml,我有这样的validLog4jXML字符串 <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE log4j:eventSet PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd" > <log4j:eventSet version="1.2" xmlns:log4j="http://jakarta.apache.org/log4j/" includesLocat
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE log4j:eventSet PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd" >
<log4j:eventSet version="1.2" xmlns:log4j="http://jakarta.apache.org/log4j/" includesLocationInfo="true">
<log4j:event logger="org.apache.axis2.deployment.ClusterBuilder"
timestamp="1395925603261" level="INFO" thread="localhost-startStop-1">
<log4j:message>
<![CDATA[Clustering has been disabled]]>
</log4j:message>
</log4j:event>
</log4j:eventSet>
我试图查看有关VTD-XML的文档,它说:
要避免此例外情况,请执行以下操作:
[ERROR] No URL found for prefix:log4j
com.ximpleware.XPathParseException: No URL found for prefix:log4j
at com.ximpleware.xpath.CUP$parser$actions.CUP$parser$do_action(parser.java:752)
at com.ximpleware.xpath.parser.do_action(parser.java:434)
at java_cup.runtime.lr_parser.parse(lr_parser.java:570)
at com.ximpleware.AutoPilot.selectXPath(AutoPilot.java:809)
at ad.ecs.library.LogHelper.collectLogNodesVTD(LogHelper.java:654)
at ad.ecs.library.LogHelper.collectLogNodesForADayVTD(LogHelper.java:571)
at ad.ecs.library.LogHelper.collectLogNodesForTheWeekVTD(LogHelper.java:456)
at ad.ecs.library.LogHelper.access$2(LogHelper.java:453)
at ad.ecs.library.LogHelper$2.run(LogHelper.java:313)
at java.lang.Thread.run(Thread.java:724)
com.ximpleware.XPathParseException:未找到前缀为xyz的URL
确保创建具有名称空间支持的初始导航器对象(即,最后一个参数设置为true),并将名称空间哈希作为最终参数传入,以查找索引、第一个匹配、所有匹配、获取xml和获取哈希
我试着按照这些步骤做,但没有成功。我将非常感谢您的帮助。在查询中使用名称空间之前,您必须使用以下方法注册名称空间:
[ERROR] No URL found for prefix:log4j
com.ximpleware.XPathParseException: No URL found for prefix:log4j
at com.ximpleware.xpath.CUP$parser$actions.CUP$parser$do_action(parser.java:752)
at com.ximpleware.xpath.parser.do_action(parser.java:434)
at java_cup.runtime.lr_parser.parse(lr_parser.java:570)
at com.ximpleware.AutoPilot.selectXPath(AutoPilot.java:809)
at ad.ecs.library.LogHelper.collectLogNodesVTD(LogHelper.java:654)
at ad.ecs.library.LogHelper.collectLogNodesForADayVTD(LogHelper.java:571)
at ad.ecs.library.LogHelper.collectLogNodesForTheWeekVTD(LogHelper.java:456)
at ad.ecs.library.LogHelper.access$2(LogHelper.java:453)
at ad.ecs.library.LogHelper$2.run(LogHelper.java:313)
at java.lang.Thread.run(Thread.java:724)
ap.declareXPathNameSpace(log4j, "http://jakarta.apache.org/log4j/");