作者:手机用户2502939545 | 来源:互联网 | 2014-05-14 00:32
直接贴代码吧!主要有两个文件,一个查询、修改单词的表单所处的页面。然后另外一个文件用于将单词保存到XML文件中,使用的类是DOMDocument类。这个类就是用于操作XML文件的。<head><title>testforxml
直接贴代码吧!主要有两个文件,一个查询、修改单词的表单所处的页面。然后另外一个文件用于将单词保存到XML文件中,使用的类是DOMDocument类。这个类就是用于操作XML文件的。
xml.class.php文件如下:
dom =new DOMDocument("1.0","utf-8");
$this->dom->formatOutput=true;
}
public function xml_query($word){
$bool=$this->dom->load("test.xml");
if(!$bool)echo "error when load the xml file
";
$arr=array();
$temp=$this->dom->getElementById($word);
$arr[0]=$temp->getElementsByTagName("NAME")->item(0)->nodeValue;
$arr[1]=$temp->getElementsByTagName("DESCRI")->item(0)->nodeValue;
$arr[2]=$temp->getElementsByTagName("NOTES")->item(0)->nodeValue;
return $arr;
}
public function setTextNode($Node,$content){
$Node->appendChild($this->dom->createTextNode($content));
}
public function xml_insert($contentArray){
$arr=array("WORD","DESCRI","NAME","NOTES");
$this->setRootEle("DANCI");
for($j=0;$j<4;$j++){
$tempArr[$j]=$this->dom->createElement($arr[$j]);
}
$word=$this->root->appendChild($tempArr[0]);
for($j=1;$j<4;$j++){
$this->setTextNode($word->appendChild($tempArr[$j]),$contentArray[$j-1]);
}
$word->setAttribute("id", $contentArray[1]);
}
public function setRootEle($name){
$this->root=$this->dom->appendChild($this->dom->createElement($name));
}
public function checkWord($word){
$str=file_get_contents("test.xml");
if(preg_match("/".$word."<\/NAME>/", $str)==1)return true;
else return false;
}
public function save(){
$this->dom->save("temp.xml");
$fp=fopen("temp.xml", "r+");//不能用w+,要不然文件就会被覆盖,这种方式会覆盖之前写过的信息,而不是插入。
/*下面的一句话就可以让保存的文件的编码设为UTF-8,而文件默认编码方式为ANSI。这一点可以用记事本程序查看文件的编码方式
fwrite($fp,"\xef\xbb\xbf");*/
fwrite($fp, "");
fgets($fp,200);//第一行字节留有200足够,使文件指针转移到下一行
//fgets($fp,200);
$xml="";
while(!feof($fp)){
$xml.=fread($fp, 1024);
}
$xml.="";
fclose($fp);
$str=file_get_contents("test.xml");
$pattern="/<\/TABLE>/";$replacement="";
$str=preg_replace($pattern,$replacement,$str);
file_put_contents("test.xml",$str);
$fp=fopen("test.xml", "a+");
fwrite($fp,$xml);
fclose($fp);
}
}
?>