Java Apache公共jxpath XML解析-XML URL为空
下面是我用来学习JXPath xml解析的示例代码Java Apache公共jxpath XML解析-XML URL为空,java,xml,url,apache-commons,Java,Xml,Url,Apache Commons,下面是我用来学习JXPath xml解析的示例代码 import java.net.URL; import java.util.Iterator; import org.apache.commons.jxpath.Container; import org.apache.commons.jxpath.JXPathContext; import org.apache.commons.jxpath.xml.DocumentContainer; public class DocumentConta
import java.net.URL;
import java.util.Iterator;
import org.apache.commons.jxpath.Container;
import org.apache.commons.jxpath.JXPathContext;
import org.apache.commons.jxpath.xml.DocumentContainer;
public class DocumentContainerTest {
/**
* @param args
*/
public static void main(String[] args) {
//Get the URL the of XML document
URL url = DocumentContainerTest.class.getClassLoader().getResource("student_class.xml");
//Construct document container from the URL to XML
Container container = new DocumentContainer(url);
JXPathContext context = JXPathContext.newContext(container);
Iterator<?> subjects = context.iterate("/studentClass/subjects_list/subject");
while (subjects.hasNext()) {
System.out.println(subjects.next());
}
Iterator<?> stdNames = context.iterate("/studentClass/student_list/student/firstName");
while (stdNames.hasNext()) {
System.out.println(stdNames.next());
}
System.out.println(context.getValue("/studentClass/student_list/student[@id='1']/firstName"));
}
}
import java.net.URL;
导入java.util.Iterator;
导入org.apache.commons.jxpath.Container;
导入org.apache.commons.jxpath.JXPathContext;
导入org.apache.commons.jxpath.xml.DocumentContainer;
公共类DocumentContainerTest{
/**
*@param args
*/
公共静态void main(字符串[]args){
//获取XML文档的URL
URL URL=DocumentContainerTest.class.getClassLoader().getResource(“student_class.xml”);
//从URL到XML构造文档容器
容器容器=新文档容器(url);
JXPathContext=JXPathContext.newContext(容器);
迭代器subjects=context.iterate(“/studentClass/subjects\u list/subject”);
while(subjects.hasNext()){
System.out.println(subjects.next());
}
迭代器stdNames=context.iterate(“/studentClass/student_list/student/firstName”);
while(stdNames.hasNext()){
System.out.println(stdNames.next());
}
System.out.println(context.getValue(“/studentClass/student_list/student[@id='1']/firstName”);
}
}
这是我使用的XML文件
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<studentClass>
<name>MPC</name>
<subjects_list>
<subject>Maths</subject>
<subject>Physics</subject>
<subject>Chemistry</subject>
</subjects_list>
<student_list>
<student id="1">
<age>2</age>
<dob>2011-09-25T16:41:56.250+05:30</dob>
<firstName>Sriram</firstName>
<hobby>Painting</hobby>
<lastName>Kasireddi</lastName>
</student>
<student id="2">
<age>26</age>
<dob>2011-09-25T16:41:56.250+05:30</dob>
<firstName>Sudhakar</firstName>
<hobby>Coding</hobby>
<lastName>Kasireddi</lastName>
</student>
</student_list>
</studentClass>
MPC
数学
物理
化学
2.
2011-09-25T16:41:56.250+05:30
斯利拉姆
绘画
卡西雷迪
26
2011-09-25T16:41:56.250+05:30
苏达卡尔
编码
卡西雷迪
我得到下面的错误
Exception in thread "main" org.apache.commons.jxpath.JXPathException: XML URL is null
at org.apache.commons.jxpath.xml.DocumentContainer.<init>(DocumentContainer.java:106)
at org.apache.commons.jxpath.xml.DocumentContainer.<init>(DocumentContainer.java:92)
at org.apache.commons.jxpath.XMLDocumentContainer.<init>(XMLDocumentContainer.java:58)
at jxpath_ex1.DocumentContainerTest.main(DocumentContainerTest.java:26)
Java Result: 1
线程“main”org.apache.commons.jxpath.JXPathException中的异常:XML URL为null
位于org.apache.commons.jxpath.xml.DocumentContainer.(DocumentContainer.java:106)
位于org.apache.commons.jxpath.xml.DocumentContainer.(DocumentContainer.java:92)
位于org.apache.commons.jxpath.XMLDocumentContainer.(XMLDocumentContainer.java:58)
位于jxpath_ex1.DocumentContainerTest.main(DocumentContainerTest.java:26)
Java结果:1
我已经添加了lib文件,commons-jxpath-1.3.jar,commons-beanutils-1.3.jar,apache commons logging.jar。在定义url时,已经像下面这样尝试过了,它可以工作
URL url = DocumentContainerTest.class.getResource("student_class.xml");