日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

PHP擴展之XML操作(一)——SimpleXML

瀏覽:21日期:2022-09-16 10:04:17
一、簡介及安裝

SimpleXML 擴展提供了一個非常簡單和易于使用的工具集,能將 XML 轉換成一個帶有一般屬性選擇器和數組迭代器的對象。

此擴展需要?libxml?PHP 擴展。這表示需要使用?--enable-libxml?,盡管這將隱式完成因為 libxml 是缺省開啟的。

需要PHP5及以上版本。

此擴展默認為啟用,編譯時可通過下列選項禁用:?--disable-simplexml

二、使用示例基本使用

Example #1 Include file example.php with XML string

<?php$xmlstr?=?<<<XML<?xml?version=’1.0’?standalone=’yes’?><movies><movie><title>PHP:?Behind?the?Parser</title><characters><character><name>Ms.?Coder</name><actor>Onlivia?Actora</actor></character><character><name>Mr.?Coder</name><actor>El?Act&#211;r</actor></character></characters><plot>So,?this?language.?It’s?like,?a?programming?language.?Or?is?it?ascripting?language??All?is?revealed?in?this?thrilling?horror?spoofof?a?documentary.</plot><great-lines><line>PHP?solves?all?my?web?problems</line></great-lines><rating?type='thumbs'>7</rating><rating?type='stars'>5</rating></movie></movies>XML;?>

The simplicity of SimpleXML appears most clearly when one extracts a string or number from a basic XML document.

Example #2 Getting?<plot>

<?phpinclude?’example.php’;

$movies?=?new?SimpleXMLElement($xmlstr);

echo?$movies->movie[0]->plot;?>

以上例程會輸出:

So, this language. It’s like, a programming language. Or is it a scripting language? All is revealed in this thrilling horror spoof of a documentary.

Accessing elements within an XML document that contain characters not permitted under PHP’s naming convention (e.g. the hyphen) can be accomplished by encapsulating the element name within braces and the apostrophe.

Example #3 Getting?<line>

<?phpinclude?’example.php’;

$movies?=?new?SimpleXMLElement($xmlstr);

echo?$movies->movie->{’great-lines’}->line;?>

以上例程會輸出:

PHP solves all my web problems

Example #4 Accessing non-unique elements in SimpleXML

When multiple instances of an element exist as children of a single parent element, normal iteration techniques apply.

<?phpinclude?’example.php’;

$movies?=?new?SimpleXMLElement($xmlstr);

/*?For?each?<character>?node,?we?echo?a?separate?<name>.?*/foreach?($movies->movie->characters->character?as?$character)?{echo?$character->name,?’?played?by?’,?$character->actor,?PHP_EOL;}

?>

以上例程會輸出:

Ms. Coder played by Onlivia ActoraMr. Coder played by El Actór

Note:

Properties ($movies->movie?in previous example) are not arrays. They are?iterable?and?accessible?objects.

Example #5 Using attributes

So far, we have only covered the work of reading element names and their values. SimpleXML can also access element attributes. Access attributes of an element just as you would elements of an?array.

<?phpinclude?’example.php’;

$movies?=?new?SimpleXMLElement($xmlstr);

/*?Access?the?<rating>?nodes?of?the?first?movie.*?Output?the?rating?scale,?too.?*/foreach?($movies->movie[0]->rating?as?$rating)?{switch((string)?$rating[’type’])?{?//?Get?attributes?as?element?indicescase?’thumbs’:echo?$rating,?’?thumbs?up’;break;case?’stars’:echo?$rating,?’?stars’;break;}}?>

以上例程會輸出:

7 thumbs up5 stars

Example #6 Comparing Elements and Attributes with Text

To compare an element or attribute with a string or pass it into a function that requires a string, you must cast it to a string using?(string). Otherwise, PHP treats the element as an object.

<?phpinclude?’example.php’;

$movies?=?new?SimpleXMLElement($xmlstr);

if?((string)?$movies->movie->title?==?’PHP:?Behind?the?Parser’)?{print?’My?favorite?movie.’;}

echo?htmlentities((string)?$movies->movie->title);?>

以上例程會輸出:

My favorite movie.PHP: Behind the Parser

Example #7 Comparing Two Elements

Two SimpleXMLElements are considered different even if they point to the same element since PHP 5.2.0.

<?phpinclude?’example.php’;

$movies1?=?new?SimpleXMLElement($xmlstr);$movies2?=?new?SimpleXMLElement($xmlstr);var_dump($movies1?==?$movies2);?//?false?since?PHP?5.2.0?>

以上例程會輸出:

bool(false)

Example #8 Using XPath

SimpleXML includes built-in?XPath?support. To find all?<character>?elements:

<?phpinclude?’example.php’;

$movies?=?new?SimpleXMLElement($xmlstr);

foreach?($movies->xpath(’//character’)?as?$character)?{echo?$character->name,?’played?by?’,?$character->actor,?PHP_EOL;}?>

’//’ serves as a wildcard. To specify absolute paths, omit one of the slashes.

以上例程會輸出:

Ms. Coder played by Onlivia ActoraMr. Coder played by El Actór

Example #9 Setting values

Data in SimpleXML doesn’t have to be constant. The object allows for manipulation of all of its elements.

<?phpinclude?’example.php’;$movies?=?new?SimpleXMLElement($xmlstr);

$movies->movie[0]->characters->character[0]->name?=?’Miss?Coder’;

echo?$movies->asXML();?>

以上例程會輸出:

<?xml version='1.0' standalone='yes'?><movies> <movie> <title>PHP: Behind the Parser</title> <characters> <character> <name>Miss Coder</name> <actor>Onlivia Actora</actor> </character> <character> <name>Mr. Coder</name> <actor>El Act&#xD3;r</actor> </character> </characters> <plot> So, this language. It’s like, a programming language. Or is it a scripting language? All is revealed in this thrilling horror spoof of a documentary. </plot> <great-lines> <line>PHP solves all my web problems</line> </great-lines> <rating type='thumbs'>7</rating> <rating type='stars'>5</rating> </movie></movies>

Example #10 Adding elements and attributes

Since PHP 5.1.3, SimpleXML has had the ability to easily add children and attributes.

<?phpinclude?’example.php’;$movies?=?new?SimpleXMLElement($xmlstr);

$character?=?$movies->movie[0]->characters->addChild(’character’);$character->addChild(’name’,?’Mr.?Parser’);$character->addChild(’actor’,?’John?Doe’);

$rating?=?$movies->movie[0]->addChild(’rating’,?’PG’);$rating->addAttribute(’type’,?’mpaa’);

echo?$movies->asXML();?>

以上例程會輸出:

<?xml version='1.0' standalone='yes'?><movies> <movie> <title>PHP: Behind the Parser</title> <characters> <character> <name>Ms. Coder</name> <actor>Onlivia Actora</actor> </character> <character> <name>Mr. Coder</name> <actor>El Act&#xD3;r</actor> </character> <character><name>Mr. Parser</name><actor>John Doe</actor></character></characters> <plot> So, this language. It’s like, a programming language. Or is it a scripting language? All is revealed in this thrilling horror spoof of a documentary. </plot> <great-lines> <line>PHP solves all my web problems</line> </great-lines> <rating type='thumbs'>7</rating> <rating type='stars'>5</rating> <rating type='mpaa'>PG</rating></movie></movies>

Example #11 DOM Interoperability

PHP has a mechanism to convert XML nodes between SimpleXML and DOM formats. This example shows how one might change a DOM element to SimpleXML.

<?php$dom?=?new?DOMDocument;$dom->loadXML(’<books><book><title>blah</title></book></books>’);if?(!$dom)?{echo?’Error?while?parsing?the?document’;exit;}

$books?=?simplexml_import_dom($dom);

echo?$books->book[0]->title;?>

以上例程會輸出:

blah處理XML錯誤

Example #1 Loading broken XML string

<?phplibxml_use_internal_errors(true);$sxe?=?simplexml_load_string('<?xml?version=’1.0’><broken><xml></broken>');if?($sxe?===?false)?{echo?'Failed?loading?XMLn';foreach(libxml_get_errors()?as?$error)?{echo?'t',?$error->message;}}?>

以上例程會輸出:

Failed loading XML Blank needed here parsing XML declaration: ’?>’ expected Opening and ending tag mismatch: xml line 1 and broken Premature end of data in tag broken line 1三、相關函數simplexml_import_dom?— Get a SimpleXMLElement object from a DOM node.simplexml_load_file?— Interprets an XML file into an objectsimplexml_load_string?— Interprets a string of XML into an object四、相關類及成員函數

SimpleXMLElement類

SimpleXMLElement::addAttribute?— Adds an attribute to the SimpleXML elementSimpleXMLElement::addChild?— Adds a child element to the XML nodeSimpleXMLElement::asXML?— Return a well-formed XML string based on SimpleXML elementSimpleXMLElement::attributes?— Identifies an element’s attributesSimpleXMLElement::children?— Finds children of given nodeSimpleXMLElement::__construct?— Creates a new SimpleXMLElement objectSimpleXMLElement::count?— Counts the children of an elementSimpleXMLElement::getDocNamespaces?— Returns namespaces declared in documentSimpleXMLElement::getName?— Gets the name of the XML elementSimpleXMLElement::getNamespaces?— Returns namespaces used in documentSimpleXMLElement::registerXPathNamespace?— Creates a prefix/ns context for the next XPath querySimpleXMLElement::saveXML?— 別名 SimpleXMLElement::asXMLSimpleXMLElement::__toString?— Returns the string contentSimpleXMLElement::xpath?— Runs XPath query on XML data

SimpleXMLIterator類

SimpleXMLIterator::current?— Returns the current elementSimpleXMLIterator::getChildren?— Returns the sub-elements of the current elementSimpleXMLIterator::hasChildren?— Checks whether the current element has sub elements.SimpleXMLIterator::key?— Return current keySimpleXMLIterator::next?— Move to next elementSimpleXMLIterator::rewind?— Rewind to the first elementSimpleXMLIterator::valid?— Check whether the current element is valid
標簽: PHP
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
一本色道精品久久一区二区三区| 91成人精品在线| 欧美日韩精品一本二本三本| 国产精品日本一区二区不卡视频| 中文在线一区| 久热re这里精品视频在线6| 欧美 日韩 国产一区二区在线视频| 欧美成人综合| 国产精品试看| 91精品蜜臀一区二区三区在线| 精品资源在线| 精品午夜av| 亚洲国产专区| 国产日韩精品视频一区二区三区| 亚洲字幕久久| 久久中文视频| 欧美影院三区| 亚洲一区二区三区免费在线观看| 欧美日韩精品在线一区| 国产欧美丝祙| 视频精品一区二区| 影音先锋久久| 日韩欧美一区二区三区在线观看 | 免费成人在线影院| 欧美日韩一区二区综合| 久久香蕉国产| 久久久夜精品| 在线一区免费观看| 亚洲a成人v| 精品欧美视频| 午夜精品影院| 国产一区二区三区探花| 国产另类在线| 国产精品最新| 日本欧美国产| 成人久久久久| 亚洲欧美日韩一区在线观看| 综合干狼人综合首页| 日韩av午夜在线观看| 亚洲黄色免费av| 国产毛片一区| 国产精品1区| 电影天堂国产精品| 午夜在线播放视频欧美| 国产精品久久久久久久久久妞妞 | 高清一区二区| 免费观看久久久4p| 日韩高清一级| 加勒比视频一区| 日韩国产欧美在线播放| 日本精品另类| 伊人精品视频| 国产伦乱精品| 欧洲一区二区三区精品| 欧美精品不卡| 成人三级高清视频在线看| 日韩区欧美区| 99久久精品国产亚洲精品| 国产亚洲综合精品| 久久久亚洲欧洲日产| 欧美久久久网站| 91久久久精品国产| 国产伦理一区| 国产精品nxnn| 免费在线观看精品| 日本 国产 欧美色综合| 久久国产尿小便嘘嘘| 亚洲高清av| 日韩大片免费观看| 日韩精品免费一区二区三区| 麻豆久久久久久| 亚洲精品在线二区| 免费日韩av片| 日韩免费小视频| 国产96在线亚洲| 911精品国产| 香蕉久久一区| 日韩超碰人人爽人人做人人添| 国产精品久久久久久久久久久久久久久| 亚洲精品激情| 欧美在线观看天堂一区二区三区| 日韩国产在线观看一区| 国产一区精品福利| 日本成人在线一区| 免费在线观看视频一区| 日本欧美一区二区在线观看| 88久久精品| 久久精品国产久精国产| 卡一精品卡二卡三网站乱码| 亚洲精品乱码久久久久久蜜桃麻豆| 综合色一区二区| 美女少妇全过程你懂的久久| 欧美~级网站不卡| 国产精品一区二区av日韩在线| 国产一区二区三区日韩精品| 色欧美自拍视频| 久久免费国产| 国产综合激情| 国产欧美日韩精品一区二区三区| 国产视频网站一区二区三区| 久久国产直播| 日本成人精品| 国产日韩一区二区三免费高清| 精品国产黄a∨片高清在线| 1024精品一区二区三区| 蜜桃av.网站在线观看| 老司机久久99久久精品播放免费| 一区二区三区午夜视频| 成人一二三区| 首页亚洲欧美制服丝腿| 精品中文字幕一区二区三区 | 亚洲欧美日本国产专区一区| 久久久久伊人| 亚洲狼人精品一区二区三区| 欧美日韩国产v| 久久免费福利| 亚洲一区区二区| 欧美在线资源| 在线日韩av| 亚洲调教视频在线观看| 日本在线成人| 日韩在线一区二区| 中文精品视频| 九九久久婷婷| 天堂√8在线中文| 午夜影院一区| 亚洲不卡av不卡一区二区| 成人av三级| 国产欧美日韩综合一区在线播放| 亚洲综合不卡| 亚洲一级网站| 国产乱码精品一区二区三区亚洲人 | 99视频精品免费观看| 伊人精品视频| 日韩精品视频一区二区三区| 亚洲精品裸体| 国内揄拍国内精品久久| 国产精品videossex久久发布| 午夜电影一区| 国内自拍视频一区二区三区| 激情综合激情| 欧洲av一区二区| 婷婷视频一区二区三区| 国产精品亚洲四区在线观看 | 欧美日韩精品一本二本三本 | 国产精品任我爽爆在线播放| 麻豆精品蜜桃视频网站| 日本成人在线一区| 成人综合一区| 日本激情一区| 在线亚洲国产精品网站| 日本成人手机在线| 欧美一区久久久| 视频一区二区不卡| 98精品久久久久久久| 日本不卡的三区四区五区| 欧美日韩精品一区二区视频| 婷婷五月色综合香五月| 日韩一区二区三区免费播放| 亚洲精品乱码久久久久久蜜桃麻豆 | 日韩精品1区| 成人午夜国产| 欧美视频一区| 久久精品免费一区二区三区 | 国产精品一区二区免费福利视频| 国产精品欧美三级在线观看| 欧美自拍一区| 国产一区二区三区不卡av | 亚洲一区二区三区四区电影| 日韩国产91| 欧美a级一区二区| 99精品美女| 日韩三级精品| 高清不卡亚洲| 伊人精品久久| 捆绑调教美女网站视频一区| 亚洲福利久久| 国产亚洲字幕| 欧洲在线一区| 亚洲伊人精品酒店| 国产成人a视频高清在线观看| 午夜欧美精品| 国产精品久久久久久av公交车| 久久人人99| 国产精品一国产精品k频道56| 久久久人人人| 日本午夜精品久久久久| 三级小说欧洲区亚洲区| 国产一精品一av一免费爽爽| 欧美成人日韩| 免费在线欧美黄色| 免费日韩av片| 久久99高清| 免费在线观看精品| 麻豆精品新av中文字幕| 天堂av在线一区| 国精品产品一区| 香蕉人人精品| 91精品韩国| 丰满少妇一区|