Учебник по основам PHP. PHPBeginner



         

XML-интерпретация - часть 11


Файл, moldb.xml

<?xml version="1.0"7> <moldb>

<molecule> <name>Al am ne</name>

<symbol>ala</symbol> <code>A</code>

<type>hydrophobic</type> </molecule>

<molecule> <name>Lysine</name>

<symbol>lys</symbol> <code>K</code>
<type>cha rged</type> </molecule> </moldb>

Сценарий parsemoldb.php, интерпретатор файла moldb.xml:

<?php class AminoAcid { // класс аминокислот

var Sname; // aa имя var Ssymbol:

// трехбуквенный символ var Scode:

// однобуквенный код var Stype: // свойства

function AminoAcid ($aa) { foreach ($aa as $k=>$v)

Sthis->$k = $aa[$k]; } }

function readDatabase(Sfllename) {

// read the xml database of arrrinoacids

Sdata = implode("",file(Sfilename));

Sparser = xml_parser_create();

xml_parser_set_option

($parser.XML_OPTION_CASE_FOLDING,0):

xml_parser_set_option

($parser.XML_OPTION_SKIP_WHITE.l).

xml_parse_into_struct(Sparser,Sdata,&$values.&$tags),

xml_parser_free($parser).

// loop through the structures foreach

($tags as $key=>$val) { if ($key == "molecule")

{ $molranges = $val;

for ($i=0. $1 < count($molranges):

$1+=2) { Soffset = $molranges[$i] + 1;

$len = $molranges[$i + 1] - Soffset: $tdb[]

=

parseMol(array_slice($values. Soffset. Slen)): }

} else { continue: } } return $tdb: }

function parseMol($mvalues) {

for ($i=0; $1 < count($mvalues); $i++)

$mol[$mvalues[$i]["tag"]] = $mvalues[$i]["value"]:

return new AminoAcid($mol): }

$db = readDatabaseC'moldb.xml"):

echo "** Database of AminoAcid objects: ";

pnnt_r($db): ?>

После запуска сценария переменная $db будет содержать массив AminoAcid объектов и будет выведено:

** Database of AminoAcid objects: Array (

[0] => aminoacid Object (

[name] => Alamne [symbol] => ala [code] =>

A [type] => hydrophobic ) [1] => aminoacid Object




Содержание  Назад  Вперед