php - XML 解析子问题

标签 php xml

我正在编写一个连接到远程 API 并接收 XML 信息的脚本。

我遇到的问题是我无法正确解析 domain:ns。

下面的 XML:

$xml= '<?xml version="1.0" encoding="UTF-8"?>
<response xmlns:domain="http://www.eurodns.com/domain" xmlns:eurodns="http://www.eurodns.com/eurodns">
 <extension>
  <eurodns:domain>
   <domain:ns addr="176.31.236.123">ns1.it-joan.pl</domain:ns>
   <domain:ns addr="89.72.43.135">ns2.it-joan.pl</domain:ns>
  </eurodns:domain>
 </extension>
</response>';

 $xml = new SimpleXMLElement($xml);
        foreach( $xml->resData as $value )
        {
                $array[] = $value->children('http://www.eurodns.com/eurodns');
        }

最佳答案

访问命名空间项的方式是这样的

$xml= '<?xml version="1.0" encoding="UTF-8"?>
<response xmlns:domain="http://www.eurodns.com/domain" xmlns:eurodns="http://www.eurodns.com/eurodns">
 <extension>
  <eurodns:domain>
   <domain:ns addr="176.31.236.123">ns1.it-joan.pl</domain:ns>
   <domain:ns addr="89.72.43.135">ns2.it-joan.pl</domain:ns>
  </eurodns:domain>
 </extension>
</response>';
$xml = new SimpleXMLElement($xml);
$eurodns = $xml->extension->children('http://www.eurodns.com/eurodns');
$domain = $eurodns->children('http://www.eurodns.com/domain');

print_r($domain);

我不知道你正在处理的整个 xml 结构,或者你想用它做什么,所以我不能再进一步了。但是你可以从这里开始处理你的代码,从 SimpleXMLElement::getNamespaces以获得更好的动态解析器​​。

关于php - XML 解析子问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12654273/

相关文章:

PHP - 将 GET 变量从父页面传递到 iframe

php - Cakephp通过foreach在表内单选输入

html - 在 iOS 中抓取 HTML

php - mysql 在准备好的语句中插入和选择

php - PayPal-PHP-SDK 代码错误

php - 在 PHP 中访问数组内部的数组

xml - 在 Perl 中解析 RSS/Atom 的最佳库是什么?

mysql - 将 FIlemaker DB 数据传输到 mySQL DB

Android EditText 用于 android :hint 的密码

c# - 为每个循环创建 XName.Get In