消息关闭
    暂无新消息!
import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;




public class DomTest {

/**
 * 使用DOM解析xml文档
 */
public static void main(String[] args){

try {
//得到DOM解析器的工厂实例
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
//从DOM工厂获取DOM解析器
DocumentBuilder db;
db = dbf.newDocumentBuilder();
//解析xml文档,得到一个Document对象,即DOM树
Document doc;
doc = db.parse("XML可扩展标记语言/PhoneInfo.xml");
//获取所有Brand节点列表信息
NodeList branList = doc.getElementsByTagName("Brand");
//循环Brand列表
for(int i=0;i<branList.getLength();i++){
//获取第i个Brand元素信息
Node brand = branList.item(i);
//获取第i个Brand元素的属性的值
Element element = (Element) brand;
String attrValue = element.getAttribute("name");
//获取第i个Brand元素的所有字元素的name属性值
NodeList types = element.getChildNodes();
for(int j=0;j<types.getLength();j++){
Element typeElement = (Element) types.item(j);//获取type节点
String type = typeElement.getAttribute("name");//获取手机型号
System.out.println("手机:"+attrValue+type);
}
}
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}





Exception in thread "main" java.lang.ClassCastException: com.sun.org.apache.xerces.internal.dom.DeferredTextImpl cannot be cast to org.w3c.dom.Element
at DomTest.main(DomTest.java:44)

1个回答