Php SimpleXML-无法获取第一个标记的属性

Php SimpleXML-无法获取第一个标记的属性,php,simplexml,Php,Simplexml,我试图读取XML的第一个标记的属性。 下面是XML结构 <myxml timestamp="1301467801"> <tag1>value1</tag1> <tag2>value2</tag2> … </myxml> 有人能告诉我如何获得属性的值吗?谢谢。这是因为您的$xml实际上指向根元素。正确的用法是: $timestamp=$xml->attributes()->timestamp访问属性(

我试图读取XML的第一个标记的属性。 下面是XML结构

<myxml timestamp="1301467801">
    <tag1>value1</tag1>
    <tag2>value2</tag2>
    …
</myxml>

有人能告诉我如何获得属性的值吗?谢谢。

这是因为您的
$xml
实际上指向根元素。正确的用法是:


$timestamp=$xml->attributes()->timestamp

访问属性(只要它们属于节点的名称空间)的正确方法是使用数组表示法。为命名空间属性保留
属性

此外,还应该在XML文档的根节点之后命名表示XML文档的变量。这是一个很好的实践,可以防止许多混淆

$myxml = simplexml_load_string(
    '<myxml timestamp="1301467801">
        <tag1>value1</tag1>
        <tag2>value2</tag2>
    </myxml>'
);

echo $myxml['timestamp'];
$myxml=simplexml\u加载\u字符串(
'
价值1
价值2
'
);
echo$myxml['timestamp'];
将不打印任何内容
//您需要将simpleXMLElement属性转换为字符串!!!
$test=(字符串)$myxml['timestamp'];
回声试验;
?>

请提供可复制的测试用例。从上面的例子很难猜出你做错了什么。我的假设是,
$xml
实际上指的是
节点,而不是
->myxml
。但该节点不再存在警告也可能意味着其他一些误用。
$myxml = simplexml_load_string(
    '<myxml timestamp="1301467801">
        <tag1>value1</tag1>
        <tag2>value2</tag2>
    </myxml>'
);

echo $myxml['timestamp'];
<?php
$myxml = simplexml_load_string(
        '<myxml timestamp="1301467801">
        <tag1>value1</tag1>
        <tag2>value2</tag2>
    </myxml>'
);

$test = $myxml['timestamp'];
// will asign simpleXMLElement
echo $test; // -> will print nothing

// you need to cast the simpleXMLElement attribute as STRING!!! 
$test = (string)$myxml['timestamp'];
echo $test;
?>