Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP获取XML属性_Php_Xml - Fatal编程技术网

如何使用PHP获取XML属性

如何使用PHP获取XML属性,php,xml,Php,Xml,这是我的xml文件: <device name=" name "> <interface> <ip > someip </ip> </interface> <display> <name> \\.\DISPLAY1 ( 1920 X 1080 )</name> </display> <output> <audio> Speakers (Hig

这是我的xml文件:

<device name=" name ">
<interface>
    <ip > someip </ip>
</interface>
<display>
    <name> \\.\DISPLAY1 ( 1920 X 1080 )</name>
</display>
<output>
    <audio> Speakers (High Definition Audio </audio>
    <audio> Digital Audio (S/PDIF) (High De </audio>
    <audio> Digital Audio (S/PDIF) (High De </audio>
</output>

萨米普
\\.\DISPLAY1(1920 X 1080)
扬声器(高清音频)
数字音频(S/PDIF)(高De
数字音频(S/PDIF)(高De

这是我的PHP代码:

<body style="font-family: Arial">
<?php
    $xml=simplexml_load_file("device.xml");
    var_dump($xml);
    $attr = $xml->device->attributes()->name;
?>
<div id="leftDiv">
    <ul id="menu">
        <li><?php echo $attr; ?></li>
    </ul>
</div>
<div id="mainDiv">

</div>
<div id="rightDiv">

</div>

设备->属性()->名称;
?>


我想访问设备的name属性并获取其值,但我总是得到一个错误:main():第30行的C:\xampp\htdocs\Project\index.php中不再存在节点。第30行是这一行:$attr=$xml->device->attributes()->name;怎么了?

php文件代码

$xml->device->attributes()->name;

<body style="font-family: Arial">
<?php
    $xml=simplexml_load_file("device.xml");
    var_dump($xml);
    $attr = $xml->attributes()->name;
?>
<div id="leftDiv">
    <ul id="menu">
        <li><?php echo $attr; ?></li>
    </ul>
</div>
<div id="mainDiv">

</div>
<div id="rightDiv">

</div>

属性()->名称;
?>
xml文件

文件末尾缺少
,请将其放入

<device name=" name ">
<interface>
    <ip > someip </ip>
</interface>
<display>
    <name> \\.\DISPLAY1 ( 1920 X 1080 )</name>
</display>
<output>
    <audio> Speakers (High Definition Audio </audio>
    <audio> Digital Audio (S/PDIF) (High De </audio>
    <audio> Digital Audio (S/PDIF) (High De </audio>
</output>
</device>

萨米普
\\.\DISPLAY1(1920 X 1080)
扬声器(高清音频)
数字音频(S/PDIF)(高De
数字音频(S/PDIF)(高De

您发布的XML无效(它没有根元素)。能否构造一个可以实际测试并给出相同错误的XML?如果错误确实在
$attr=$XML->device->attributes()行上->name;
我们应该只需要看到这三行PHP代码。这是一个根元素本身,只是这段代码中缺少了结束标记。好吧,这是一个很容易犯的错误。不过,这里的PHP代码仍然比我们需要的要多;只要以
$xml=…
$attr=…
开头的两行代码就可以成为您的提示:
 $xml->attributes()->name
可以更简洁地写成
$xml['name'];