simpleXML

来源:http://www.cnblogs.com/dingxiaomei/archive/2017/11/13/7824128.html
-Advertisement-
Play Games

PHP5以上提供了一個simpleXML對象來操作XML,把XML的節點轉換成對象和數組去操作。 ...


PHP5以上提供了一個simpleXML對象來操作XML,把XML的節點轉換成對象和數組去操作。

基本思路:將xml字元串轉化成對象及數組。

查詢

<?php
//將xml字元串轉化成對象及數組
$xml=  file_get_contents('books.xml');//把books.xml中的內容讀出來,即獲取XML的字元串
$simple=new SimpleXMLElement($xml);//把XML字元串轉成數組,$simple代表根節點
//1、查詢
echo "<table width='400' border='1'>";
foreach ($simple->book as $book){
    $attr=$book->attributes();
    echo"<tr>";
    echo "<td>".$book->name."</td>";
    echo "<td>".$book->price."</td>";
    echo "<td>".$attr['type']."</td>";//獲取節點的屬性
    echo "</tr>";
}
echo "</table>";

添加

<?php
//
將xml字元串轉化成對象及數組 $xml= file_get_contents('books.xml');//把books.xml中的內容讀出來,即獲取XML的字元串 $simple=new SimpleXMLElement($xml);//把XML字元串轉成數組,$simple代表根節點 //添加,simplexml目前還沒有找到格式化的方法。 $book=$simple->addChild('book');//$simple相當於根節點,即代表books,在根下寫book節點 $book->addChild('name','C++'); $book->addChild('price','11'); $book->addAttribute('type','動態語言'); $simple->saveXML('books.xml');//$simple->asXML('books.xml');和$simple->saveXML('books.xml');一樣,都是保存的意思

更新

<?php
//將xml字元串轉化成對象及數組
$xml=  file_get_contents('books.xml');//把books.xml中的內容讀出來,即獲取XML的字元串
$simple=new SimpleXMLElement($xml);//把XML字元串轉成數組,$simple代表根節點
foreach ($simple->book as $book){
    $book->name.='-北京出版社';//相當於$book->name=$book->name.'-北京出版社';
}
$simple->saveXML('books.xml');

刪除,從後往前刪

<?php
//將xml字元串轉化成對象及數組
$xml=  file_get_contents('books.xml');//把books.xml中的內容讀出來,即獲取XML的字元串
$simple=new SimpleXMLElement($xml);//把XML字元串轉成數組,$simple代表根節點
($i=count($simple->book)-1;$i>=0;$i--){
    $currenbook=$simple->book[$i];//當前圖書
    $attr=$currenbook->attributes();
    if($attr['type']=='動態語言'){
        unset($simple->book[$i]);//unset銷毀當前變數
    }
   
} 
$simple->saveXML('books.xml');

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Debian部署python3+flask+uwsgi+Nginx+Supervisor 一、安裝編譯用的包 如果在root下就不用輸入 sudo。在子用戶下就在命令前加上 sudo。 $ sudo apt-get install build-essential $ sudo apt-get ins ...
  • 配套視頻: 1.什麼是構造器 2.構造器特點 3.自定義構造器 4.構造器重載 一、什麼是構造器? 我們看下麵一行代碼 new 後面像不像是調用一個方法 我們稱在創建對象時自動調用的方法,稱為構造器 在類中找不到預設的構造器,通過反編譯工具可以看到預設的構造方法 可以看到, 在編譯成位元組碼後,裡面會 ...
  • MVC模型: MVC(Model View Controller 模型-視圖-控制器)是一種Web架構的模式,它把業務邏輯、模型數據、用戶界面分離開來,讓開發者將數據與表現解耦,前端工程師可以只改頁面效果部分而不用接觸後端代碼,DBA可以重新命名數據表並且只需更改一個地方,無需從一大堆文件中進行查找 ...
  • 題目內容: 寫一個將華氏溫度轉換成攝氏溫度的程式,轉換的公式是: °F = (9/5)*°C + 32 其中C表示攝氏溫度,F表示華氏溫度。 程式的輸入是一個整數,表示華氏溫度。輸出對應的攝氏溫度,也是一個整數。 提示,為了把計算結果的浮點數轉換成整數,需要使用下麵的表達式: (int)x; 其中x ...
  • druapl 的核心可能會有漏洞,這時就需要我們去打補丁。很多補丁都已經有人寫好了,我這裡講的就是如何去打這些已經寫好的補丁。 對於這個問題:drupal8 核心有bug導致了兩個相同的錯誤提示的出現 1.打開項目最外層中的composer.json文件 2.確保 "enable-patching" ...
  • 1.查找文件find / -name filename.txt 根據名稱查找/目錄下的filename.txt文件。find . -name “*.xml” 遞歸查找所有的xml文件2.查看一個程式是否運行ps –ef|grep tomcat 查看所有有關tomcat的進程3.終止線程kill -9 ...
  • 在項目開發裡面,我遇到了這麼一個需求,就是對於node的title欄位,編輯內容的角色不允許對title進行編輯。title欄位是創建內容類型時自動生成的欄位,不能在drupal8後臺直接配置許可權,所以我需要用代碼自定義一個許可權。 1.在/modules/custom下自定義一個模塊,我的模塊名為o ...
  • Hadoop生態大數據系統分為Yam、 HDFS、MapReduce計算框架。TensorFlow分散式相當於MapReduce計算框架,Kubernetes相當於Yam調度系統。TensorFlowOnSpark,利用遠程直接記憶體訪問(Remote Direct Memory Access,RDM ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...