java使用dom4j解析xml,对比php使用SimpleXMLElement解析xml

java使用dom4j解析xml

xml文件

<?xml version="1.0" encoding="utf-8"?>

<node>

<updated>2009-11-25 09:06:11</updated>

<entry>
<link href="http://xx/initline/detail/1628 "  time="2009-11-25 09:06:11"/>
</entry>
<entry>
<link href="http://xx/initline/detail/1634 "  time="2009-11-25 09:06:11"/>
</entry>
<entry>
<link href="http://xx/initline/detail/1636 "  time="2009-11-25 09:06:11"/>
</entry> 

 </node>

 

解析xml获取属性   

SAXReader reader = new SAXReader(); //初始化

Document doc = reader.read(url);  //read可以是String类型的xml,可以是File或InputStream,也可以是url远程地址

Node node = doc.selectSingleNode("/node");  //这里根节点是/,其下子节点是node  selectSingleNode代表只选取一个节点

List list = root.selectNodes("entry/link");  //这里会选择多个节点

for (Object o : list) {
                Element e = (Element) o;
                String link = e.attributeValue("href"); // 获取属性内容

 

}

 

xml文件

<?xml version="1.0" encoding="utf-8"?>

<node>

<updated>2009-11-25 09:13:09</updated>

<uri>1628</uri>

<domain>http://xx</domain>

<type>line</type>

<title><![CDATA[上海到连云港、黄金海岸二日游]]></title>

<lid><![CDATA[1628]]></lid>

<startdest><![CDATA[上海]]></startdest>

<startgui><![CDATA[ascn23]]></startgui>

<outdays type="cypress.num">2</outdays>

<created><![CDATA[1224831808]]></created>

<changed><![CDATA[1258004282]]></changed>

</node>

 

 

解析xml获取值内容

SAXReader reader = new SAXReader();

Document doc = reader.read(strxml);

Node root = doc.selectSingleNode("/node");

String uid = root.selectSingleNode("title").getText();  //获取值内容,这里可以选择某个节点去获得值内容

 

另一种解析方式

Element root = doc.getRootElement();

System.out.println("root:" + root.getName());   //这里打印出的就是根node,根没有值

for(Iterator it = root.elementIterator(); it.hasNext(); ) {  //迭代根元素
    Element e = (Element) it.next();
    System.out.println(e.getName() + " " + e.getText());     //获取名和值    
    
}

 

 

生成xml

 

Document document = DocumentHelper.createDocument();  // 先生成Document对象

Element resume= document.addElement("resume");  //根节点
Element baseinfo= resume.addElement("baseinfo");  //一级子节点

Element name = baseinfo.addElement("name");  //二级子节点
name.setText("hepeng");  //节点值内容

Element sex = baseinfo.addElement("sex");
sex.setText("m");
Element age = baseinfo.addElement("age");
age.setText("23);


Writer fileWriter = new FileWriter(fileName);   //写入文件
XMLWriter xmlWriter = new XMLWriter(fileWriter); //写入文件
xmlWriter.write(document);  //写
xmlWriter.close();

 

生成的xml结果

<resume>

    <baseinfo>

        <name>hepeng<name>

        <sex>m</sex>

        <age>23</age>

    </baseinfo>

</resume>

 

修改xml某项

 

使用setText()修改,最后使用XMLWriter打开xml文件,并writer该doc对象,关闭即可。

 

 

php使用SimpleXMLElement解析xml

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值