이 기사의 예에서는 PHP가 XMLWriter를 기반으로 xml을 작동하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.
어제 수업에 이어 주로 XMLWriter 및 XMLReader를 중심으로 XML을 읽고 쓰는 방법을 배워 보겠습니다. 전자는 xml을 생성하는 데 사용되고 후자는 xml을 읽고 구문 분석하는 데 사용됩니다.
1 이 방법으로 xml 파일을 생성하거나 strings
<?php header("Content-type: text/html; charset=utf-8"); $xml=new XMLWriter(); //$xml->openUri("php://output"); //设置输出,如果不需要保存成文件则使用上面被注释掉那句 $xml->openUri("stu2.xml"); //设置缩进字符串,这里设置为空串(这句和下面的setIntent也可以不要) $xml->setIndentString(''); $xml->setIndent(true); //xml文档开始 $xml->startDocument('1.0', 'utf-8'); //创建根节点 $xml->startElement("StudentInfo"); $xml->startElement("Item"); //添加属性 $xml->writeAttribute("type","1"); $xml->startElement("id"); $xml->text("01"); $xml->endElement(); $xml->startElement("name"); $xml->text("刘惜君"); $xml->endElement(); $xml->endElement(); $xml->endElement(); $xml->endDocument(); //header("Content-type: text/xml"); //取得缓冲区里的xml字符串 //echo $xml->outputMemory(); ?>
을 살펴보겠습니다. 각 태그는 끝 뒤에 endElement가 필요하고 xml이 연결된 후에 문서를 종료해야 합니다. "레이어링의 레이어"라는 느낌이 있습니다
2. xml 파싱
<?php header("Content-type: text/html; charset=utf-8"); $xml=new XMLReader(); //载入xml文件,如果是字符串直接使用xml方法 $xml->open("student.xml"); //开始读取xml while($xml->read()){ //根据节点类型和元素名称取得文本节点或属性 if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == 'item') { print $xml->getAttribute("id") . "</br>"; } if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == 'name') { //移动指针到下一个节点 $xml->read(); //取得文本节点的值 print $xml->value."</br>"; } if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == 'age') { $xml->read(); print $xml->value."</br>"; } } ?>
이러한 xml 파싱 방법이 더 효율적입니다. 이해가 되지 않는 부분이 있으면 PHP 개발 매뉴얼을 확인하는 것이 좋습니다.
파싱된 파일 내용은 다음과 같습니다<?xml version="1.0" encoding="utf-8"?> <UsersInfo> <item id="01"> <name>冯绍峰</name> <age>30</age> </item> <item id="02"> <name>潘玮柏</name> <age>29</age> </item> </UsersInfo>분석 결과는 다음과 같습니다
위 내용은 php: XMLWriter의 xml 작동 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!