php XML 读写 创建

一 、XML 读

1.1、 首先同目录定义好一个XML文件 :

book.xml

<?xml version="1.0" encoding="utf-8"?>
<books>
  <book>
    <id>1</id>
    <name>书本001</name>
  </book>
    <book>
    <id>2</id>
    <name>书本002</name>
  </book>
    <book>
    <id>3</id>
        <name>书本003</name>
  </book>
    <title>这是标题</title>
</books>

1.2  通过 getElementsByTagName 读取XML

$xml=new DOMDocument();
$xml->load("book.xml");
// 通过 getElementsByTagName 读取
foreach($xml->getElementsByTagName(‘book‘) as $book)
{
    $id=$book->getElementsByTagName("id");
    $name=$book->getElementsByTagName("name");
    echo "id:".$id->item(0)->nodeValue.",name:".$name->item(0)->nodeValue."<br/>";
}

1.3 通过 simplexml_import_dom  直接读取属性

// 通过simplexml_import_dom  直接读取属性
$simplexml = simplexml_import_dom($xml);
echo "sid->title:".$simplexml->title;
echo  "the id is :".$simplexml->book[0]->id;echo  "the id is :".$simplexml->title;

二 、XML 创建

2.1、通过 字符串 创建XML document 元素

$xmlString=<<<XML
<?xml version="1.0" encoding="utf-8"?>
<books>
  <book>
    <id>1</id>
    <name>书本001</name>
  </book>
    <book>
    <id>2</id>
    <name>书本002</name>
  </book>
    <book>
    <id>3</id>
        <name>书本003</name>
  </book>
    <title>这是标题</title>
</books>
XML;

$dom=new DomDocument;
$dom->loadXML($xmlString);

2.2 通过 DOMDocument  api  创建XML 对象 ( 子节点,节点属性 ,CDATA属性值标记)

class buildXml
{

    /*
     *  创建一个XML元素
     * */
    private function  createXml()
    {
        $dom = new DOMDocument("1.0");
        $books = $dom->createElement("books");

        for ($i = 0; $i < 4; $i++) {
            $book = $dom->createElement("book");

// 为book 节点添加一个属性
            $price = $dom->createAttribute("price");
            $priceValue = $dom->createTextNode($i * 10);
            $price->appendChild($priceValue);
            $book->appendChild($price);

// 添加一个id 接点元素 并赋值
            $id = $dom->createElement("id");
            $idValue = $dom->createTextNode($i);
            $id->appendChild($idValue);
            $book->appendChild($id);

//  添加一个待 CDATA标识的内容
            $title = $dom->createElement("title");
            $titleValue = $dom->createCDATASection("这是一个带CDATA标签的内容");
            $title->appendChild($titleValue);
            $book->appendChild($title);
            $books->appendChild($book);
        }

        $dom->appendChild($books);
        return $dom->saveXML();
    }

    // 输出XML
    public function  printXML()
    {
        header("Content-Type: text/xml");
        echo $this->createXml();
    }

    // 保存XML
    public function  saveXML()
    {
        $result = false;
        try {
            //打开要写入 XML数据的文件
            $fp = fopen("newxml.xml", "w");
            //写入 XML数据
            fwrite($fp, $this->createXml());
            //关闭文件
            fclose($fp);
            $result = true;
        } catch (Exception $e) {
            print $e->getMessage();
            exit();
        }
        return $result;
    }
}

2.3  http 输出 XML


require_once "buildXml.php";
$xml = new buildXml;
 echo $xml->printXML();

2.4 已文件形式保存 XML

require_once "buildXml.php";

$xml = new buildXml;
$xml->saveXML();
时间: 2024-10-16 10:42:38

php XML 读写 创建的相关文章

unity3d里的XML读写示例

关于U3D里面XML读写办法,谢谢刘老师的指导(刘国栋) 代码: /**Project name:*    *Author:*    *Version:*    *Description:*    */ using UnityEngine;using System.Collections;using System.Xml;using System.Xml.Serialization;using System.IO;using System.Text;using System.Security.C

XML读写

private string fileName = HttpContext.Current.Server.MapPath("~/Student.xml"); protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { GetAllStudent(); } } private void GetAllStudent() { ddlStudent.Items.Clear(); XmlDocument do

【Python】Python XML 读写

class ACTIVE_FILE_PROTECT_RULE_VIEW(APIView): renderer_classes = (JSONRenderer, BrowsableAPIRenderer) parser_classes = (JSONParser,) def post(self, request): from datetime import datetime from django.utils import timezone from django.utils.timezone i

XML的创建和解析(4)

一丶XML的创建 手动创建(保存到sd卡) String status = Environment.getExternalStorageState();        if (status.equals(Environment.MEDIA_MOUNTED)) {            // 获取sd卡的路径            String path = Environment.getExternalStorageDirectory()                    + "/sms.x

XML 读写-JDOM和DOM4j

一.JDOM的XML读写 1.JDOM的XML 读 1 import java.io.File; 2 import java.io.IOException; 3 import java.util.Iterator; 4 import java.util.List; 5 import org.jdom.Document; 6 import org.jdom.Element; 7 import org.jdom.JDOMException; 8 import org.jdom.input.SAXBu

oracle blob mybatis xml读写

最近项目用到了对oracle大字段的读写,小白在这里记录下,方便自己以后用到,也希望对其他朋友有一点帮助. 由于项目的原因,这里的blob只是对xml报文的读写,并没有涉及到保存图片等,因此下面涉及的方法可能不全面,如有需要请自行查看其它大神博客. 一.读blob 这里对blob的读是直接在数据库建了一个函数Blob_To_Varchar ,这样方便项目里面其它地方用到查询blob: CREATE OR REPLACE Function Blob_To_Varchar (Blob_In In B

xml读写Demo

主要包括: 使用xmlDocument的方式读写xml文档,读取xml字符串. 使用XDocument的方式读写xml文档,读取xml字符串. 将xml中的数据递归加载到winform的Treeview中. 代码下载地址:http://files.cnblogs.com/files/FangZhaohu/Xml%E8%AF%BB%E5%86%99%E7%BB%83%E4%B9%A0.zip 以后需要补充: XDocument与Linq XmlDocument与Xpath xml的一些其他知识.

.net中XML的创建02(linqToXml)

linqToXml比较的灵活和方便,它是基于函数式编程具体的使用如下:引用程序集using System.Xml.Linq; 1.创建XDocument并设置文档头  XDocument XDoc = new XDocument();  XDoc .Declaration = new XDeclaration("1,0", "gb2312", null); 2.创建根节点元素XElement  XElement root = new XElement("r

C#-XML文件提取字符串+字符串存为XML文件+创建XML(自定义节点)文件+读取节点内容

一.将字符串写入xml文件(并保存) 写入: XmlDocument xdoc = new XmlDocument(); xdoc.LoadXml("xmlstring"); 保存: xdoc.Save("pathsave.xml") 二.将xml文件赋值到字符串 读取xml文件: XmlDocument xdoc = new XmlDocument(); xdoc.Load("pathload.xml"); 返回字符串: xdoc.InnerX