package cn.ujjboy.answer.csdn;import java.io.IOException;
import java.util.List;import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;public class ReadXML1 { public static void main(String[] args) throws JDOMException, IOException {
SAXBuilder sb = new SAXBuilder();
Document doc = sb.build("d:\\d.xml");
Element root = doc.getRootElement();
List list = root.getChildren();// 得到根节点NewDataSet
if (list == null || list.size() == 0)
System.out.println("空文件");
for (int i = 0; i < list.size(); i++) {
Element FVDL = (Element) list.get(i);// 得到fvdl
List list2 = FVDL.getChildren();
for (int j = 0; j < list2.size(); j++) {
Element Vulnerabilities = (Element) list2.get(j);
List list3 = Vulnerabilities.getChildren();// 得到Vulnerabilities
for (int k = 0; k < list3.size(); k++) {
Element Vulnerability = (Element) list3.get(k);
List list4 = Vulnerability.getChildren();// 得到Vulnerability
for (int l = 0; l < list4.size(); l++) {
Element ClassInfo = (Element) list4.get(l);// 得到ClassInfo
List list5 = ClassInfo.getChildren();
for (int m = 0; m < list5.size(); m++) {
Element ClassID = (Element) list5.get(m);// 得到ClassID同级的节点
if ("ClassID".equals(ClassID.getName()))// 如果名字相同也可以加上namespace比较
System.out.println(ClassID.getText());
}
}
}
}
}
}
}

解决方案 »

  1.   

    package cn.ujjboy.answer.csdn;import java.io.IOException;
    import org.jdom.Document;
    import org.jdom.Element;
    import org.jdom.JDOMException;
    import org.jdom.input.SAXBuilder;
    import org.jdom.xpath.XPath;public class ReadXML2 { public static void main(String[] args) throws JDOMException, IOException {
    SAXBuilder sb = new SAXBuilder();
    Document doc = sb.build("d:\\d.xml");
    Element root = doc.getRootElement();

    // XPath xpath = XPath.newInstance("//Kingdom"); 没有namespace情况
    XPath xpath = XPath.newInstance("//ns:Kingdom");
    xpath.addNamespace("ns", "xmlns://www.fortifysoftware.com/schema/fvdl");
    Element ele = (Element) xpath.selectSingleNode(doc);
    System.out.println(ele.getText());
    }
    }BTW: 你的namespace 怎么是这样子写的呢?1.一般是这样子写的xmlns:ans="http://www.fortifysoftware.com/schema/fvdl"  而且ans这个不会以xml打头2.结果也该是这样子啊
    <NewDataSet xmlns:ans="http://www.fortifysoftware.com/schema/fvdl">
     <ans:FVDL>
      <ans:CreatedTS date="2008-08-24" time="10:41:13" /> 
       <ans:Vulnerabilities>
         .....