0

PROP の「名前」の値を読み取るにはどうすればよいですか。以下のスクリプトを使用して PVAL を読み取ることができます。

<?xml version='1.0'?>
<RECORDS>
<RECORD>
<PROP NAME="Product">
    <PVAL><![CDATA[Produkt1]]></PVAL>
</PROP>
<PROP NAME="Value">
    <PVAL><![CDATA[10]]></PVAL>
</PROP>
<PROP NAME="Status">
    <PVAL><![CDATA[Active]]></PVAL>
</PROP>
</RECORD>
<RECORD>
<PROP NAME="Product">
    <PVAL><![CDATA[Produkt2]]></PVAL>
</PROP>
<PROP NAME="Value">
    <PVAL><![CDATA[20]]></PVAL>
</PROP>
<PROP NAME="Status">
    <PVAL><![CDATA[Active]]></PVAL>
</PROP>
</RECORD>
<RECORD>
<PROP NAME="Product">
    <PVAL><![CDATA[Produkt3]]></PVAL>
</PROP>
<PROP NAME="Value">
    <PVAL><![CDATA[30]]></PVAL>
</PROP>
<PROP NAME="Status">
    <PVAL><![CDATA[Active]]></PVAL>
</PROP>
</RECORD>

以下のスクリプトを使用して、PVAL を取得できます。しかし、名前の値も取得したいと思います。 $strvalue = $node->PROP[6]->NAME; を試しました。運がなければ...

<?php
$z = new XMLReader;
$z->open('products.xml');

$doc = new DOMDocument;

// move to the first <product /> node
while ($z->read() && $z->name !== 'RECORD');

// now that we're at the right depth, hop to the next <product/> until the end of the tree
while ($z->name === 'RECORD')
{

$node = simplexml_import_dom($doc->importNode($z->expand(), true));


$strvalue = $node->PROP[6]->PVAL;
echo $strvalue."<p>" ;

// go to next <product />
$z->next('RECORD');
}
?>
4

1 に答える 1

1

ここに提案があります:SimpleXMLElement($xml_string)これを使用すると、入力として xml 文字列を受け取り、より簡単に操作できる PHP オブジェクトが返されます。次に、次のような便利なことができます。

$php_object = SimpleXMLElement($xml_string);
var_dump($php_object);
exit;

これにより、オブジェクトの構造を調べて、最適なアクセス方法を決定できます。幸運を。

于 2012-10-04T20:17:01.687 に答える