服务内容
  Our service 
  
  
     客户案例
  Case list 
  
	   	     
     推荐文章
  Recommended articles 
   
	   	 
     热门内容
  Hot tags 
    	   
	   	  
   
     
 | 
    
      Php利用java解析xml发表日期:2016/7/19 16:37:50 浏览次数: 	
请先安装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解析时候的文件:   $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.*;   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();   }   } 
   |  | 
移动设备浏览《Php利用java解析xml》请扫描二维码, 欢迎访问更多相关内容