读取 XML 动态 PHP [英] Read XML dynamic PHP

查看:28
本文介绍了读取 XML 动态 PHP的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的 PHP 站点中,我想读取这样的 xml 文件:

in my site in PHP I want to read an xml file like this:

<?xml version="1.0" standalone="yes"?>
<RETURNDATA lang="it-IT" type="COR" xsi:noNamespaceSchemaLocation="http://xmlv5test.travco.co.uk/trlink/schema/CountryRequestV6Rcv.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <MESSAGE>All Countries details and relevant city details</MESSAGE>
    <DATA COUNTRY_CODE="ABW" CURRENCY_CODE="EUR">
        <COUNTRY_NAME>Aruba</COUNTRY_NAME>
        <CURRENCY_NAME>euro</CURRENCY_NAME>
        <COUNTRY_CITIES>
            <CITY_DATA CITY_CODE="AUA">
                <CITY_NAME>Aruba</CITY_NAME>
            </CITY_DATA>
        </COUNTRY_CITIES>
    </DATA>
    <DATA COUNTRY_CODE="ALB" CURRENCY_CODE="EUR">
        <COUNTRY_NAME>Albania</COUNTRY_NAME>
        <CURRENCY_NAME>euro</CURRENCY_NAME>
        <COUNTRY_CITIES>
            <CITY_DATA CITY_CODE="TIA">
                <CITY_NAME>Tirana</CITY_NAME>
            </CITY_DATA>
        </COUNTRY_CITIES>
    </DATA>
    <DATA COUNTRY_CODE="ARE" CURRENCY_CODE="EUR">
        <COUNTRY_NAME>Emirati Arabi Uniti</COUNTRY_NAME>
        <CURRENCY_NAME>euro</CURRENCY_NAME>
        <COUNTRY_CITIES>
            <CITY_DATA CITY_CODE="DXB">
                <CITY_NAME>Dubai</CITY_NAME>
            </CITY_DATA>
            <CITY_DATA CITY_CODE="AAI">
                <CITY_NAME>Al Ain</CITY_NAME>
            </CITY_DATA>
            <CITY_DATA CITY_CODE="FJR">
                <CITY_NAME>Fujaira</CITY_NAME>
            </CITY_DATA>
            <CITY_DATA CITY_CODE="SSH">
                <CITY_NAME>Sharja</CITY_NAME>
            </CITY_DATA>
            <CITY_DATA CITY_CODE="RKT">
                <CITY_NAME>Ras al-Khaimah</CITY_NAME>
            </CITY_DATA>
            <CITY_DATA CITY_CODE="AUH">
                <CITY_NAME>Abu Dhabi</CITY_NAME>
            </CITY_DATA>
         </COUNTRY_CITIES>
     </DATA>
</RETURNDATA>

我想在每个节点名中输入DATA并取:
COUNTRY_CODE
CURRENCY_CODE
COUNTRY_NAME
CURRENCY_NAME
并将所有国家/地区的城市代码和名称关联到一个数组中.

I want to enter in each node name DATA and take:
COUNTRY_CODE
CURRENCY_CODE
COUNTRY_NAME
CURRENCY_NAME
And all ountry cities code and name into an array associative.

我尝试过使用 SimpleXML,但 XML 是动态的,我想优化我的周期,因为我可以拥有非常大的 XML(这只是其中的一小部分).

I have tried with SimpleXML, but the XML is dynamic and I wanto to optimize my cycle because I can have a very big and large XML (this is only a little part of It).

$xml_str = file_get_contents('xml/country.xml');
    $xml = new SimpleXMLElement($xml_str);
    echo $xml->getName(), PHP_EOL;
    foreach($xml as $name => $part) {
       echo "$name: $part", PHP_EOL;
    }

我想创建一个非常优化的循环来获取我的价值

I want to create a very otpimize cycle to take my value

推荐答案

使用以下样式仅访问根元素中的 子元素:

Use the following style to acces only the <DATA> child elements in the root element:

foreach ($xml->DATA as $name => $part) { 

另外请查看 SimpleXML Introduction 它应该有一些很好的例子来展示不同的如何使用 SimpleXML 做基本的事情.文档非常好.

Also please check the SimpleXML Introduction it should have some good examples for you showing different ways how to do the basic stuff with SimpleXML. The documentation is pretty good.

这篇关于读取 XML 动态 PHP的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆