PHP DOM:getElementsbyTagName

Mor*_*rph 5 php dom

我担心这是一个非常愚蠢的问题,但在过去2小时内尝试了大量的组合后,我真的陷入了困境.我试图将NAME从XML文件中拉出来

我的XML文件:

<?xml version="1.0"?>
<userdata>
<name>John</name>
</userdata>
Run Code Online (Sandbox Code Playgroud)

我的PHP:

  $doc          =  new DOMDocument();
  $doc          -> load( "thefile.xml" );
  $thename       =  $doc -> getElementsByTagName( "name" );
$myname= $thename -> getElementsByTagName("name") -> item(0) -> nodeValue;
Run Code Online (Sandbox Code Playgroud)

错误:

Catchable fatal error: Object of class DOMElement could not be converted to string in phpreader.php
Run Code Online (Sandbox Code Playgroud)

我试过了

$myname= $thename -> getElementsByTagName("name") -> item(0) ;
$myname= $doc     -> getElementsByTagName("name") -> item(0) -> nodeValue;
$myname= $doc     -> getElementsByTagName("name") -> item(0) ;
Run Code Online (Sandbox Code Playgroud)

但都失败了.猜猜我已经尝试过几乎每个组合,除了正确的一个:(

Fed*_*rón 6

你可能想要$myname = $thename->item(0)->nodeValue.$ thename已经是标签为"name"的所有节点的NodeList - 你想要这些(->item(0))的第一项,并且你想要node(->nodeValue)的值.$thename应该更恰当地命名$names,你会看到为什么$names->item(0)->nodeValue在语义上有意义.

这适用于我的TM.