(PHP 4, PHP 5)
xml_parse_into_struct — ヌロホスツ、ツホ、ヒ XML ・ヌ。シ・ソ、靉�、ケ、�
、ウ、ホエリソマ。「XML ハクサ昀靉�、キ。「2、ト、ホヌロホスツ、ツホ、ヒツ衄�、キ、゙、ケ。」 、メ、ネ、ト、皃ホヌロホ� (index) 、マ。「ヌロホ� values 、ヒ、「、�ャナハテヘ、ホーフテヨ、リ、ケ・ン・、・ソ、ンサ�、キ、ニ、、、゙、ケ。」 、ウ、�鮗ヌク螟ホニト、ホ・ム・鬣癸シ・ソ、マサイセネナマ、キ、ネ、ケ、�ャヘラ、ャ、「、熙゙、ケ。」
XML ・ム。シ・オ、リ、ホサイセネ。」
XML ・ヌ。シ・ソ、゙、猝クサ昀」
XML ・ヌ。シ・ソ、ホテヘ、゙、猊ロホ」
$values ニ筅ホナャタレ、ハテヘ、ホセ�熙オ、ケ・ン・、・ソ、ホヌロホ」
xml_parse_into_struct() 、マシコヌヤ、キ、ソセ�遉ヒ 0。「 タョクキ、ソセ�遉ヒ 1 、ヨ、キ、゙、ケ。」、ウ、�マ FALSE 、ェ、隍モ TRUE 、ネ、マ ーロ、ハ、�筅ホ、ヌ、ケ、ホ、ヌ。「=== 、ホ、隍ヲ、ハア鮟ササメ、ネヘム、ケ、��遉マテ擎ユ、キ、゙、キ、遉ヲ。」
ーハイシ、ホホ网マ。「、ウ、ホエリソヒ、隍�クタョ、オ、�ソヌロホホニ篷スツ、、ィ、ケ、筅ホ、ヌ、ケ。」 note・ソ・ー、�para・ソ・ー、ホテ讀ヒヒ� 、盪�、ヌサネヘム、キ、ソク蝪「、ウ、�ム。シ・ケ、キ。「タクタョ、オ、�ソケスツ、ツホ、ミホマ、キ、゙、ケ。」
ホ�1 xml_parse_into_struct() 、ホホ�
<?php
$simple = "<para><note>simple note</note></para>";
$p = xml_parser_create();
xml_parse_into_struct($p, $simple, $vals, $index);
xml_parser_free($p);
echo "Index array\n";
print_r($index);
echo "\nVals array\n";
print_r($vals);
?>
、ウ、ホ・ウ。シ・ノ、ツケヤ、キ、ソセ�遑「スミホマ、マシ。、ホ、隍ヲ、ヒ、ハ、熙゙、ケ。」
Index array Array ( [PARA] => Array ( [0] => 0 [1] => 2 ) [NOTE] => Array ( [0] => 1 ) ) Vals array Array ( [0] => Array ( [tag] => PARA [type] => open [level] => 1 ) [1] => Array ( [tag] => NOTE [type] => complete [level] => 2 [value] => simple note ) [2] => Array ( [tag] => PARA [type] => close [level] => 1 ) )
(expat・鬣、・ヨ・鬣熙ネヘム、キ、ソ)・、・ル・ネカ鏆ーキソ・ム。シ・オ、ヒ、隍�靉�、マ。「XML ・ノ・ュ・螂皈ネ、ャハ」サィ、ハセ�遉ヒハ」サィ、ヒ、ハ、��遉ャ、「、熙゙、ケ。」、ウ、ホエリソマ。「 DOMキチシー、ホ・ェ・ヨ・ク・ァ・ッ・ネ、クタョ、キ、゙、サ、ャ。「・ト・遙シノヒー�「、ホス靉�、ヤ、、 ニタ、�スツ、ツホ、クタョ、キ、゙、ケ。」、ト、゙、遙「XML、ホ・ユ・。・、・�ス、ケ・ェ・ヨ・ク・ァ・ッ・ネ、� ヘニーラ、ヒコ鋿ョ、ケ、�ウ、ネ、ャイトヌス、ヌ、ケ。」シ。、ホXML・ユ・。・、・�ォ、ニ、゚、゙、キ、遉ヲ。」 、ウ、ホ・ユ・。・、・�ヌ、マ。「・「・゚・ホサタ、ホセヒエリ、ケ、�ョ、オ、ハ・ヌ。シ・ソ・ル。シ・ケ、ス、キ、゙、ケ。」
ホ�2 moldb.xml - ハャサメセホセョ、オ、ハ・ヌ。シ・ソ・ル。シ・ケ
<?xml version="1.0"?> <moldb> <molecule> <name>Alanine</name> <symbol>ala</symbol> <code>A</code> <type>hydrophobic</type> </molecule> <molecule> <name>Lysine</name> <symbol>lys</symbol> <code>K</code> <type>charged</type> </molecule> </moldb>
ホ�3 parsemoldb.php - moldb.xml 、靉�、キ。「ハャサメ・ェ・ヨ・ク・ァ・ッ・ネ、ホヌロホヒツ衄�
<?php
class AminoAcid {
var $name; // aa name
var $symbol; // three letter symbol
var $code; // one letter code
var $type; // hydrophobic, charged or neutral
function AminoAcid ($aa)
{
foreach ($aa as $k=>$v)
$this->$k = $aa[$k];
}
}
function readDatabase($filename)
{
// read the XML database of aminoacids
$data = implode("", file($filename));
$parser = xml_parser_create();
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
xml_parse_into_struct($parser, $data, $values, $tags);
xml_parser_free($parser);
// loop through the structures
foreach ($tags as $key=>$val) {
if ($key == "molecule") {
$molranges = $val;
// each contiguous pair of array entries are the
// lower and upper range for each molecule definition
for ($i=0; $i < count($molranges); $i+=2) {
$offset = $molranges[$i] + 1;
$len = $molranges[$i + 1] - $offset;
$tdb[] = parseMol(array_slice($values, $offset, $len));
}
} else {
continue;
}
}
return $tdb;
}
function parseMol($mvalues)
{
for ($i=0; $i < count($mvalues); $i++) {
$mol[$mvalues[$i]["tag"]] = $mvalues[$i]["value"];
}
return new AminoAcid($mol);
}
$db = readDatabase("moldb.xml");
echo "** Database of AminoAcid objects:\n";
print_r($db);
?>
** Database of AminoAcid objects: Array ( [0] => aminoacid Object ( [name] => Alanine [symbol] => ala [code] => A [type] => hydrophobic ) [1] => aminoacid Object ( [name] => Lysine [symbol] => lys [code] => K [type] => charged ) )