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 回答