PHP SimpleXML - 获得价值

PHP SimpleXML - getting value

我正在尝试将 SimpleXML 与 PHP 结合使用,以从存储在数据库中的 XML 中获取值。我的 XML 的一部分看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<java version="1.8.0_161" class="java.beans.XMLDecoder">
  <object class="atavism.agis.objects.AgisMob" id="AgisMob0">
  <void property="name">
    <string>Rachels</string>
  </void>
  <void property="oid">
  <object class="atavism.server.engine.OID" id="OID0">
  <void property="data">
    <long>41321</long>
  </void>

我在同一个 "document" 中还有其他 XML,如下所示:

也就是说,我可能需要在 属性 属性等于 "name" 的地方获取它。我确实计划稍后从该文档中获取其他信息,只是需要弄清楚如何。

这是我目前的代码:

$blob_query = mysqli_query($dbh8, "SELECT * FROM objstore WHERE obj_id='$characterId' AND type='PLAYER' AND namespace_int='3' ORDER BY obj_id DESC LIMIT 1");           
        if($blob_query){
            $blob_row = mysqli_fetch_assoc($blob_query);
            $data = $blob_row['data'];

            $xml=simplexml_load_string($data) or die("Error: Cannot create object");
            echo $xml->void[0]->string;

        }

它没有显示任何内容。它应该显示 "Rachels"。非常感谢任何帮助!

尝试像

一样在容器中插入所有元素
<?php 
$xmld = '
<obj>
<void property="data">
  <long>41321</long>
</void>
<void property="datad">
   <long>413213</long>
</void></obj>';
 $xml=simplexml_load_string($xmld) or die("Error: Cannot create object");

echo $xml->void[0]->long;

您缺少 <object> 标签以获取 <string> 标签内容。

假设您 XML 看起来像(作为有效的 XML):

$data = '<?xml version="1.0" encoding="UTF-8"?>
<java version="1.8.0_161" class="java.beans.XMLDecoder">
  <object class="atavism.agis.objects.AgisMob" id="AgisMob0">
      <void property="name">
        <string>Rachels</string>
      </void>
  </object>
  <void property="oid">
      <object class="atavism.server.engine.OID" id="OID0">
          <void property="data">
            <long>41321</long>
          </void>
      </object>
  </void>
</java>';

你必须使用:

$xml=simplexml_load_string($data) or die("Error: Cannot create object");
echo $xml->object->void[0]->string;

输出:

Rachels

另请注意,[0] 不是必需的(在本例中):

echo $xml->object->void->string;