SimpleXMLとXMLReaderとDomを組み合わせてPHPで巨大なXMLデータを高速に処理する方法

PHP, PECL, XML, XPATH

09:03:07, by admin Email , 125 words, 7542 views   Japanese (JP) del.icio.us

実測値は取ってないけどね。

(ノ・・)ン。。。。。。(((●コロコロッ


<?php

$rawXML = "<Items><Item>hoge</Item><Item><huga>hoge</huga></Item></Items>";
$items = array();
$reader = new XMLReader();
$reader->XML( $rawXML );

while ($reader->read()) {
switch ($reader->nodeType) {
case (XMLREADER::ELEMENT):
switch( $reader->localName ){
case "Item":
$node = $reader->expand();
$dom = new DomDocument("1.0", "UTF-8");
$n = $dom->importNode($node,true);
$dom->appendChild($n);
$items[] = simplexml_import_dom($n);
break;
default:
break;
}
break;
default:
break;
}
}

print_R ($items );



XMLReader(SAX)で全体を処理し、
指定したタグ名(上記だとItem)だけを抽出。
抽出したタグはDom経由でsimpleXMLに通す。
結果としてDom経由でSimpleXMLElementの配列が取得できる。

って感じか。

=> Read more!


XMLが超便利になるXPATH利用法

PHP, XSLT, XML, XPATH

08:25:55, by dozo Email , 91 words, 4529 views   Japanese (JP) del.icio.us
こうやって使うのか!!

(ノ・・)ン。。。。。。(((●コロコロッ


サンプルとしてこういったものを用意した。

email.xml

このXMLはPEAR::Mail_mimeを使ってHTMLメールを分解し、
Mail_mimeDecode::getXML()で出力したものだ。

さて、プログラマ諸君。
このXMLからテキストメールのbody部分を取得するプログラムを考えてみてくれたまへ。(何様!?



=> Read more!

powered by b2evolution

shinobi

Neighbors
Relative
Favorites
PR

極論istの技術屋を始めて早幾年。 流れの速い業界の波にもまれながらも精一杯生きている様をとくとごらんあれ。

Archives
スポンサー

Latest bookmark
Search

Categories

Who's Online?
Misc
Syndicate this blog XML

Valid XHTML 1.0! Valid CSS! Valid RSS 2.0! Valid Atom 1.0!