抱歉,如果这看起来是一个简单的问题,但我已经开始在这个问题上拔毛了.
我有一个XML文件,看起来像这样...
<VAR VarNum="90">
<option>1</option>
</VAR>
我正在尝试获取VarNum。
到目前为止,我已经成功地使用以下代码获取了其他信息:
$xml=simplexml_load_file($file);
$option=$xml->option;
我就是得不到VarNum (我想是属性值吗?)
谢谢!
发布于 2009-08-10 19:47:02
您应该能够使用SimpleXMLElement::attributes()获得此结果
试试这个:
$xml=simplexml_load_file($file);
foreach($xml->Var[0]->attributes() as $a => $b) {
echo $a,'="',$b,"\"\n";
}
这将显示第一个foo
元素的所有名称/值属性。它是一个关联数组,所以你也可以这样做:
$attr = $xml->Var[0]->attributes();
echo $attr['VarNum'];
发布于 2009-08-10 19:44:39
使用$xml['VarNum']
怎么样?
如下所示:
$str = <<<XML
<VAR VarNum="90">
<option>1</option>
</VAR>
XML;
$xml=simplexml_load_string($str);
$option=$xml->option;
var_dump((string)$xml['VarNum']);
(我之所以使用simplexml_load_string
,是因为我将XML粘贴到一个字符串中,而不是创建一个文件;在本例中,使用simplexml_load_file
就可以了!)
会给你带来
string '90' (length=2)
使用simpleXML,您可以使用数组语法访问属性。
您必须转换为字符串才能获得值,而不是与SimpleXMLElement
的实例进行转换
例如,参见手册中的example #5 of Basic usage :-)
发布于 2012-12-28 14:35:31
[0] => Array
(
[@attributes] => Array
(
[uri] => https://abcd.com:1234/abc/cst/2/
[id] => 2
)
[name] => Array
(
[first] => abcd
[last] => efg
)
[company] => abc SOLUTION
[email] => abc@xyz.com
[homepage] => WWW.abcxyz.COM
[phone_numbers] => Array
(
[phone_number] => Array
(
[0] => Array
(
[main] => true
[type] => work
[list_order] => 1
[number] => +919876543210
)
[1] => Array
(
[main] => false
[type] => mobile
[list_order] => 2
[number] => +919876543210
)
)
)
[photo] => Array
(
[@attributes] => Array
(
[uri] => https://abcd.com:1234/abc/cst/2/cust_photo/
)
)
)
我应用了下面的代码
$xml = simplexml_load_string($response);
$json = json_encode($xml);
$array = json_decode($json,TRUE);
print_r($array);
但它不是全部使用,我想在php中的单个数组中的所有数据。
https://stackoverflow.com/questions/1256796
复制相似问题