如何在PHP中从XML文件中获取属性的值?

2022-08-30 20:53:02

抱歉,如果这似乎是一个简单的问题,但我已经开始在这个问题上拔毛了......

我有一个XML文件,看起来像这样...

<VAR VarNum="90">
  <option>1</option>
</VAR>

我正在尝试获取 VarNum

到目前为止,我已经成功地使用以下代码来获取其他信息:

$xml=simplexml_load_file($file);
$option=$xml->option;

我只是无法获得VarNum(我认为的属性值?

谢谢!


答案 1

你应该能够使用 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'];

答案 2

使用怎么样?$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']);

(我使用过,因为我已将您的XML粘贴到字符串中,而不是创建文件;在您的情况下,您正在执行的操作很好!simplexml_load_stringsimplexml_load_file

会得到你

string '90' (length=2)

使用 simpleXML,您可以使用数组语法访问属性。
并且您必须强制转换为字符串才能获得值,而不是和实例SimpleXMLElement

例如,请参阅手册中基本用法的示例 #5 :-)


推荐