0

0

Php利用java解析xml

php中文网

php中文网

发布时间:2016-06-21 09:09:26

|

1023人浏览过

|

来源于php中文网

原创

xml

作者: 雨伞
首先如果你对JAVA不感兴趣或者说你的主机不支持JAVA或者你也不打算学习的话请不要浪费时间在这里。

请先安装JAVA的执行环境与PHP结合,具体参考http://www.phpx.com/happy/thr78795.html

或者下载http://www.javax.org/download/php_java.rar
里面我写有个readme.txt说明文档,这个压缩包是个简单的例子。

要下载我的JAVA源码请到http://www.javax.org/download/JavaXml.rar

有其他问题请到http://www.javax.org/提问。


一开始我想用PHP解析XML,但发现PHP要解析XML有点麻烦,好象PHP5比较方便了,但我这边没有装5,还是4.3。后来我看到IBM一篇文章(http://www-900.cn.ibm.com/developer...kit/index.shtml)讲到可以利用JAVA来做,所以我现在就试验了一下。

要解析的XML文件:first.xml,内容如下:



小曾
20


雨伞
20


其中是根,是节点,一共有两个,name值名字不一样,一个是小曾一个是雨伞,年龄一样。

下面看PHP解析时候的文件:

/*
作者:雨伞
时间:2004/12/28
*/

$JavaXml = new Java("JavaXml"); //这里是生成一个我写的JAVA解析XML数据的类
$JavaXml->init(); //这里为初始化,比如取global.properties文件里的XML文件目录(当然你下载了例子以后要改成你的XML文件目录)
$JavaXml->Parse("first.xml"); //指定要解析的文件,相对于global.properties文件里指定的目录下
$JavaXml->get(0); //这里为取得第一个节点
echo $JavaXml->getValue("name")."
"; //取得第一个节点name标签值
echo $JavaXml->getValue("age")."
"; //取得第一个节点age标签值
$JavaXml->setValue("name","大头爸爸"); //设置第一个节点name标签值为大头爸爸
$JavaXml->get(1); //这里为取得第二个节点
echo $JavaXml->getValue("name")."
"; //取得第二个节点name标签值
echo $JavaXml->getValue("age")."
"; //取得第二个节点age标签值
?>


$JavaXml->get(0);取得节点位置,比如我的XML文件有两组,这里get(0)的话就是取第一组的 ,get(1)就是取第二组的.

最后输出是
小曾
20
雨伞
20

因为$JavaXml->setValue("name","大头爸爸"); 这句修改了第一个节点的name标签的值,XML文件已经被更新过了,所以当再执行一次这个PHP文件的时候结果会成为
大头爸爸
20
雨伞
20


以上简单几句就解析完了,下面是我的JAVA类,里面用到了JDOM来解析XML。

import org.jdom.* ;
import org.jdom.output.* ;
import org.jdom.input.* ;
import java.io.* ;
import java.util.*;
/*
作者:雨伞
时间:2004/12/28
*/
public class JavaXml {
public String path=null;
public String XmlFileName=null;
public SAXBuilder sax=null;
public Document doc=null;
public Element root=null;
public List xlist=null;
public Element e=null;
public Element value=null;

public String getTest(){
return new String("haha");
}
public JavaXml(){

}

public String init(){

InputStream is = getClass().getResourceAsStream("global.properties");
Properties dbProps = new Properties();
try {
dbProps.load( is ) ;
}
catch ( Exception e ) {
return ("error file");
}
this.path=dbProps.getProperty("XmlPath");
return ("ok");
}

public void get(int child){
this.e=(Element)xlist.get(child);
}
public String getValue(String name){
this.value=e.getChild(name);
return this.value.getText();
}
public void setValue(String name,String value)throws Exception{
this.value=e.getChild(name);
this.value.setText(value);
XMLOutputter xmlout=new XMLOutputter();
xmlout.output(doc,new FileOutputStream(path+XmlFileName));
}

public void Parse(String XmlFileName)
throws Exception
{
this.XmlFileName=XmlFileName;
this.sax=new SAXBuilder();
this.doc=sax.build(new FileInputStream(path+XmlFileName));
this.root=doc.getRootElement();
this.xlist=root.getChildren();
}

}


如果还有什么不懂的请跟贴,这样子对新手不知道是更麻烦还是更方便了,请大家发表自己的意见,如果各位觉得可以的话我将继续完善那个JAVA类,提供更多的解析XML的功能。



PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Word 字间距调整方法汇总
Word 字间距调整方法汇总

本专题整合了Word字间距调整方法,阅读下面的文章了解更详细操作。

2

2025.12.24

任务管理器教程
任务管理器教程

本专题整合了任务管理器相关教程,阅读下面的文章了解更多详细操作。

2

2025.12.24

AppleID格式
AppleID格式

本专题整合了AppleID相关内容,阅读专题下面的文章了解更多详细教程。

0

2025.12.24

csgo视频观看入口合集
csgo视频观看入口合集

本专题整合了csgo观看入口合集,阅读下面的文章了知道更多入口地址。

29

2025.12.24

yandex外贸入口合集
yandex外贸入口合集

本专题汇总了yandex外贸入口地址,阅读下面的文章了解更多内容。

58

2025.12.24

添加脚注通用方法
添加脚注通用方法

本专题整合了添加脚注方法合集,阅读专题下面的文章了解更多内容。

1

2025.12.24

重启电脑教程汇总
重启电脑教程汇总

本专题整合了重启电脑操作教程,阅读下面的文章了解更多详细教程。

3

2025.12.24

纸张尺寸汇总
纸张尺寸汇总

本专题整合了纸张尺寸相关内容,阅读专题下面的文章了解更多内容。

5

2025.12.24

Java Spring Boot 微服务实战
Java Spring Boot 微服务实战

本专题深入讲解 Java Spring Boot 在微服务架构中的应用,内容涵盖服务注册与发现、REST API开发、配置中心、负载均衡、熔断与限流、日志与监控。通过实际项目案例(如电商订单系统),帮助开发者掌握 从单体应用迁移到高可用微服务系统的完整流程与实战能力。

1

2025.12.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 9.3万人学习

Pandas 教程
Pandas 教程

共15课时 | 0.8万人学习

C# 教程
C# 教程

共94课时 | 5.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号