Home  >  Article  >  Backend Development  >  php xml introductory learning materials_PHP tutorial

php xml introductory learning materials_PHP tutorial

WBOY
WBOYOriginal
2016-07-21 15:32:42906browse

Cause:
I encountered a problem while working on a project today: I need to dynamically update the pictures on the homepage to show that this site is not just finished, but that someone has been maintaining it. Okay, now that the requirement is there, how to implement it? !
My thoughts are as follows:
Picture storage location: put it in a folder; Picture type: It cannot be fixed, as long as it is a picture, it can be uploaded and displayed; Picture name: The original name is a bit irregular and should be renamed Name it.
Display position: This requires specifying the corresponding id for the picture. This id is fixed and must correspond to the picture one-to-one. So there is a relationship file with one-to-one correspondence between records. You can choose csv files, database records, and finally decided to choose xml. I never learned this thing in school, and I have always avoided using it for fear of trouble. Today was a challenge. I spent an afternoon and finally gained something.
Learning steps:
Clear goals: 1. Understand the structure of xml; 2. How to dynamically create xml files; 3. How to read and modify xml files
1. The structure of xml is a tree shape Structure:
This is easy to understand. Simply write one:

Copy code The code is as follows:



1
pic 1


2
pic 2


3
pic 3



2. The PHP I use to create:
1. Define a DOM object: $dom = new DomDocument('1.0');
2. Add child elements: $dom- >appendChild($dom->createElement("pictures"))
The prototype in the memory is:
Continue to add child elements inside: *->appendChild( $dom->createElement("picture"));
Continue to add: **->appendChild($dom->createElement("id"));
Instead of adding child elements, add nodes. : ***->appendChild($dom->createNode("1"))
The * above represents the previous line of code; in this way, it can be written in one line:
$dom-> appendChild($dom->createElement("pictures"))->appendChild($dom->createElement("picture"))
    -->appendChild($dom->createElement("id") )->appendChild($dom->createNode("1"));
The memory should now look like this:1
Obviously, the requirements are far away, and it is easy to be confused.
Therefore it is usually written like this: $pictures = $dom->appendChild($dom->createElement("pictures"));
$picture = $pictures->appendChild($dom->createElement ("picture"));
       $id = $picture->appendChild($dom->createElement("id"));
        $id->appendChild($dom->createNode( "1"));
You can also create the name node below:
$name = $picture->appendChild($dom->createElement("name"));
;appendChild($dom->createNode("pic 1"));
Next we need to create the picture node:
$picture = $pictures->appendChild($dom->createElement(" picture"));
In fact, these troublesome things can be realized by writing a for loop.
Generate xml file:
$dom->formatOutput = true; //Set formatted output
$dom->save("erhsh.xml"); //Save xml file
3. Read the xml file.
1. Define a DOM object; $dom->new DomDocument();
2. Load the xml file: $dom->load("erhsh.xml");
3. Get the node collection according to the node name: $dom->getElementByTagName("pictures");
This method is a bit troublesome, reference file:
http://www.jb51.net/article/25853 .htm

But there is a method I like: simplexml_load_file("erhsh.xml");
This method can convert the content of the xml file into the form of an object, using "->" "[]" can easily remove the content of xml;
But we still encountered some problems during development:
When executing: print_r($xml->pictures);, the output is a SimpleXMLElement object, ( [picture] => array([0]=>array(...)[1]=>array(...)));
Execute again: print_r($xml->pictures- >picture);The output is n separate objects.
Execution: print_r($xml->pictures->picture[0]->id); The output is still an object. This is very incomprehensible, it should be a string. Finally, it is said on the Internet that it is an "iteration object",
Should use echo output, print_r(), var_dump() output is inaccurate. Reference address: http://www.jb51.net/article/25852.htm
 Of course, you can also modify the xml value through this method.
The writing is terrible, just for me to keep in mind.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/322735.htmlTechArticleCause: I encountered a problem when working on a project today: I need to dynamically update the pictures on the homepage to show that this site is not Once it's done, forget it, there are people who have been maintaining it. Okay, the demand is there, how about...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn