一.使用DOM生成和读取XML文件

实例一:

//Creates XML string and XML document using the DOM

$dom = new DomDocument('1.0');

//add root -

$books = $dom->appendChild($dom->createElement_x_x ('books'));

//add element to

$book = $books->appendChild($dom->createElement_x_x ('book'));

//add

element to

$title = $book->appendChild($dom->createElement_x_x ('title'));

//add

text node element to

$title->appendChild($dom->createTextNode('Great American Novel'));

//generate xml

$dom->formatOutput = true; // set the formatOutput attribute of domDocument to true

//save XML as string or file

$test1 = $dom->saveXML(); // put string in test1

$dom -> save('test1.xml'); // save as file

?>

实例二:

$aa = "111";

$xmlstr = <<{$aa}

Joe

Jane

I know that's the answer -- but what's the question?

XML;

$dom = new domDocument;

$dom->loadXML($xmlstr);

$test1 = $dom->saveXML();

$dom->save('test1.xml');

实例三:

test1.xml:

Jack Herrington

PHP Hacks

O'Reilly

Jack Herrington

Podcasting Hacks

O'Reilly

example.php:

$doc = new DOMDocument();

$doc->load('test1.xml');

$books = $doc->getElementsByTagName("book");

foreach($books as $book){

$authors = $book->getElementsByTagName("author");

$author = $authors->item(0)->nodeValue;

$publishers = $book->getElementsByTagName( "publisher" );

$publisher = $publishers->item(0)->nodeValue;

$titles = $book->getElementsByTagName( "title" );

$title = $titles->item(0)->nodeValue;

echo "$title - $author - $publisher\n";

}

二.使用simple生成和读取xml文件

实例一:

$xmlstr = <<Great American Novel

Cliff

really great guy

Lovely Woman

matchless beauty

Loyal Dog

sleepy

Cliff meets Lovely Woman. Loyal Dog sleeps, but wakes up to bark

at mailman.

4

9

XML;

//提取节点内容

$xml = new SimpleXMLElement($xmlstr);

foreach ($xml->book[0]->success as $success) {

switch((string) $success['type']) { // Get attributes as element indices

case 'bestseller':

echo $success. ' months on bestseller list
';

break;

case 'bookclubs':

echo $success. ' bookclub listings';

break;

}

}

//修改文本节点内容

$xml = new SimpleXMLElement($xmlstr);

$xml->book[0]->characters->character[0]->name = 'Big Cliff';

echo $xml->asXML();

//添加子元素的文本节点

$xml = new SimpleXMLElement($xmlstr);

$character = $xml->book[0]->characters->addChild('character');

$character->addChild('name', 'Yellow Cat');

$character->addChild('desc', 'aloof');

$success = $xml->book[0]->addChild('success', '2');

$success->addAttribute('type', 'reprints');

echo $xml->asXML();

?>

实例二:

if (file_exists('test1.xml')) { //读取xml文件

$xml = simplexml_load_file('test1.xml');

var_dump(xml);

} else {

exit('Failed to open test1.xml.');

}

三.DOM和simple互操作

DOM导入simpleXML:

$sxe = simplexml_load_string('Great American

Novel

');

if ($sxe === false) {

echo 'Error while parsing the document';

exit;

}

$dom_sxe = dom_import_simplexml($sxe);

if (!$dom_sxe) {

echo 'Error while converting XML';

exit;

}

$dom = new DOMDocument('1.0');

$dom_sxe = $dom->importNode($dom_sxe, true);

$dom_sxe = $dom->appendChild($dom_sxe);

$test2 = $dom->saveXML(); // put string in test2

$dom -> save('test2.xml'); // save as file

?>

simpleXML导入DOM:

$dom = new domDocument;

$dom->loadXML('Great American

Novel');

if (!$dom) {

echo 'Error while parsing the document';

exit;

}

$s = simplexml_import_dom($dom);

echo $s->book[0]->title; // Great American Novel

?>

xml getelementsbytagname php,用PHP编写和读取XML的几种方式相关推荐

  1. spark消费kafka产生数据堆积怎么处理_SparkStreaming读取Kafka的两种方式

    本文主要从以下几个方面介绍SparkStreaming读取Kafka的两种方式: 一.SparkStreaming简介 二.Kafka简介 三.Redis简介(可用于保存历史数据或偏移量数据) 四.S ...

  2. sparkstreaming 读取mysql_SparkStreaming读取Kafka的两种方式

    本文主要从以下几个方面介绍SparkStreaming读取Kafka的两种方式: 一.SparkStreaming简介 二.Kafka简介 三.Redis简介(可用于保存历史数据或偏移量数据) 四.S ...

  3. C++ 读取文件的四种方式

    本文介绍C++ 读取文件的四种方式. 第一种方式: #include<iostream> #include<fstream> using namespace std;int m ...

  4. nodejs 逐行读取文件的两种方式

    nodejs 逐行读取文件的两种方式 通过readline的方式 const fs = require('fs'); const readline = require('readline');let ...

  5. Python读取/保存图片的3种方式(PIL、matplotlib、cv2)

    文章目录 Python读取/保存图片的3种方式 PIL方式 matplotlib方式 OpenCV方式 总结: Python读取/保存图片的3种方式 PIL方式 from PIL import Ima ...

  6. springboot读取配置文件的三种方式

    项目中springboot读取配置文件的三种方式: 1.使用Environment 2.使用@Value 3.使用@ConfigurationProperties注解映射到bean中,定义一个User ...

  7. python读取图像的几种方式

    python读取图像的几种方式 本文介绍几种基于python的图像读取方式: 基于PIL库的图像读取.保存和显示 基于opencv-python的图像读取.保存和显示 基于matplotlib的图像读 ...

  8. Java读取证书的两种方式

    关于证书基础以及创建.查看.删除.导入.导出以及其他功能详解请参照:Java使用keytool创建CA证书 Java读取证书有两种方式 1.从文件中读取 public static void main ...

  9. python读取多张图片_python读取图片的几种方式及图像宽和高的存储顺序

    python读取图片的几种方式及图像宽和高的存储顺序 1.opencv 2.imageio 3.matplotlib 4.scipy # coding:utf-8 import cv2 import ...

最新文章

  1. AAAI2020-图神经网络(GNN)过去、现在、应用和未来最新研究进展分享
  2. 如何让普通进程获得 root 的洪荒之力?
  3. cmake 头文件 库文件
  4. 身为java程序员你需要知道的网站(包含书籍,面试题,架构...)
  5. 【Arduino】HX711 拉力计称重模块 两个模块同时使用
  6. 【转】IT名企面试:腾讯笔试题(2)
  7. API 层实现语音录制
  8. JavaWeb JDBC初步连接和JDBC连接规范化
  9. 微软开源 TensorFlow-DirectML,为 WSL2 提供 GPU 支持
  10. myeclipse 创建work set 后不显示的解决方法
  11. 烂泥:学习ssh之ssh隧道应用
  12. 想做产品经理,产品经理培训靠谱吗?
  13. 大数据应用能力层次模型
  14. 股价大涨61%,趣头条还能维持下一季增长吗?
  15. plc与计算机怎么网络连接 图,PLC与输入/输出设备的连接图解
  16. 采用MCaaS模式 SAP为有孚网络提供基于HANA的解决方案及服务
  17. java-sec-code学习之path_traversal
  18. LinkedIn高级分析师王益:大数据时代的理想主义和现实主义(图灵访谈)
  19. python txt文本转json格式
  20. HTTP接口测试代码,HTTP GET/POST模拟请求测试工具

热门文章

  1. 10个问题带你全面理解Linux性能优化
  2. python gui编程 自动化框架_使用Python进行GUI操作自动化
  3. 计算机知识体系图谱总结
  4. java进程内的缓存框架Ehcach
  5. RxHttp 一条链发送请求之注解处理器 Generated API(四)
  6. android应用自动打开网页,Android 使用Scheme实现从网页启动APP
  7. html代码自动提示语怎么设置,怎么为Html的Select加提示语_html
  8. 最好用的Unity代码编辑器Rider如何免费申请?
  9. 如何让vim支持python_无法使vim支持python
  10. OpenShift Security (8) - 安装并运行 DevSecOps 应用