我能够加载XML文档并创建一个SimpleXMLElement - 我也可以使用XPATH查询它,但我对我注意到的行为感到困惑。当我加载XML并创建一个SimpleXMLElement时 - 它的结构如下
XML如下
<StructuredXMLResume>
<ContactInfo>
<PersonName>
<FullName>Tom Jones</FullName>
<GivenName>Tom</GivenName>
<MiddleName />
<FamilyName>Jones</FamilyName>
</PersonName>
</ContactInfo>
</StructuredXMLResume>
[0] => SimpleXMLElement Object
(
[PersonName] => SimpleXMLElement Object
(
[FullName] => Tom Jones
[GivenName] => Tom
[MiddleName] => SimpleXMLElement Object
(
)
[FamilyName] => Jones
)
当我执行$xml->xpath('//PersonName')
时,我得到正确的结果,如下所示
[0] => SimpleXMLElement Object
(
[FullName] => Tom Jones
[GivenName] => Tom
[MiddleName] => SimpleXMLElement Object
(
)
[FamilyName] => Jones
)
但是当我执行$xml->xpath('//GivenName')
时,我得到以下结果 - 我无法理解
[0] => SimpleXMLElement Object
(
)
有人可以帮我了解我的错误是什么吗?
在我看来
,它正在按预期工作。 SimpleXMLElement::xpath
返回一个包含 SimpleXMLElement
的数组,并且您得到一个包含SimpleXMLElement
的数组。
你试过这个吗:
$nodes = $xml->xpath('//GivenName');
echo $nodes[0]; // should output: Tom
// or if that doesn't work, try:
echo (string)$nodes[0];