日期:2014-05-20 浏览次数:21087 次
/**
* 建立数据文件的读取连接
*
* @return 读取成功时返回Document对象,失败则返回空
*/
public static Document getDocument() {
Document doc1 = null;
File file = new File("xml_path");
SAXReader xml_read = new SAXReader();
try {
doc1 = xml_read.read(file);
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
return doc1;
}
private Element search_service(Document doc, String id) {
Element root = doc.getRootElement();
String xml_path = "/service/sid";
Node node = root.selectSingleNode(xml_path);
if (node != null) {
if (node.getNodeType() == Node.ELEMENT_NODE) {
return (Element) node;
}
}
return null;
}
获取xml的数据:
public void getData(){
doc = getDocument();
Element e = search_service(doc, id);
String name=e.elementText("name");
///还要获得其他结点信息
}
------解决方案--------------------
在项目下建立一个xml文件 试着解析一下
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
public class Xml {
public static void main(String[] args) {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new File("./新建 文本文档.xml"));
NodeList list = document.getElementsByTagName("Header");
for (int i = 0; i < list.getLength(); i++) {
System.out.println(list.item(i).getFirstChild().getNodeValue());
}
} catch (Exception e) {
}
}
}
------解决方案--------------------
一般如果是固定标签的话我用digester,用起来也方便,写好rule文件后,不用操作每个结点了
提供一段代码
rules.xml
<?xml version="1.0" encoding="UTF-8" ?> <digester-rules> <pattern value="foo"> <object-create-rule classname="example.Foo" /> <set-properties-rule /> <bean-property-setter-rule pattern="name" /> <bean-property-setter-rule pattern="age" /> <pattern value="bar"> <object-create-rule classname="example.Bar" /> <set-properties-rule /> <bean-property-setter-rule pattern="id" /> <bean-property-setter-rule pattern="title" /> <set-next-rule methodname="setBars" /> <pattern value="childList"> <pattern value="child"> <object-create-rule classname="example.Child" /> <set-properties-rule /> <bean-property-setter-rule pattern="sex" /> <bean-property-setter-rule pattern="school" /> <set-next-rule methodname="addChild" /> </pattern> </pattern> </pattern> </pattern> </digester-rules>
------解决方案--------------------
顶!!
------解决方案--------------------
用dom4j解析xml文件,很简单!网上很多例子!
------解决方案--------------------