Results > Posts Filed Under > Programming

Nov 23

PHP XML_Unserializer で、XMLの属性を取得したい時

0

今扱っている案件で、XMLを読み込んで、ごにょごにょする機会があり、はまったことがあったので、メモとして残します。

PHPのXML読み込み実装の中でも、かなり使えるXML_Unserializerですが、以下のようなXMLを読み込んで、なおかつ、articleタグのtypeやidのような属性までも取得したい場合、オプションを設定する必要があることがわかりました。

<articles>
	 <article type="news" id="ID10001">
		 <title>記事1</title>
	 </article>
	 <article type="news" id="ID10002">
		 <title>記事2</title>
	 </article>
</articles>

やり方は、簡単で、XML_UnserializerのsetOptionメソッドで、parseAttributesをTrueに設定すれば良いだけでした (オプション一覧)。以下はPHP5の読み込みまでの例。

<?php
require_once("XML/Unserializer.php");

$xml = file_get_contents("sample.xml");
$obj = new XML_Unserializer();

$obj->setOption("parseAttributes", true);

$status  = $obj->unserialize($xml);
if ($status === true) {
    $dat = $obj->getUnserializedData();
	  print_r($dat);
}
?>

pear の XML_Serializer, XML_Unserializerは、未だにバージョンは beta のままですが、一度これに慣れてしまうと非常に便利で手放せないモジュールになると思います。

Jun 7

初めてのPerl(リャマ本)買った

0

初めてのPerl

今メインとしている職場では、Perlスクリプトも結構活用されているようなので、いい機会と思い改めて始めてみることにした。昔からどうも苦手意識だけが先行してあるので、まずはそこの克服からだ。現在日本語版は、第3版だが、英語版は、もうすぐ第5版が発売されようとしている。当然翻訳も進んでいそうだが、待ってもいられないので、早速今日から始めます。

Learning Perl
Learning Perl 5th Edition
posted with amazlet at 08.06.07
Tom Phoenix Randal L. Schwartz Brian D. Foy
Oreilly & Associates Inc