ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php-每个父节点的子节点数量不同的XML

2019-10-13 22:31:18  阅读:294  来源: 互联网

标签:xmlreader php xml simplexml


所以我有以下格式的XML,该格式是我从文件“ test.xml”中读取的

<XML>
<Agent ID="ABC123">
    <Property>
        <Code>XYZ</Code>
        <Name>Hotel 1</Name>
    </Property>
    <Property>
        <Code>237</Code>
        <Name>Hotel 2</Name>
    </Property>
    <Property>
        <Code>213</Code>
        <Name>Hotel 3</Name>
    </Property>
</Agent>
<Agent ID="DEF456">
    <Property>
        <Code>333</Code>
        <Name>Hotel 4</Name>
    </Property>
    <Property>
        <Code>23423</Code>
        <Name>Hotel 5</Name>
    </Property>
</Agent>
<Agent ID="GHI789">
    <Property>
        <Code>45345</Code>
        <Name>Hotel 6</Name>
    </Property>
</Agent>
</XML>

我希望能够将以上内容输出为以下格式:

Agent | Code | Name
ABC123 | XYZ | Hotel 1
ABC123 | 237 | Hotel 2
......

由于每个代理中有多个代理以及不同数量的属性,我该怎么办?

我有使用XMLReader的经验,但很乐意尝试诸如SimpleXML之类的替代方法.

我想我需要在此(Foreach Agent ….)上使用Foreach循环,但不确定从哪里开始.

谢谢!

解决方法:

看这个:

$sxe = new SimpleXMLElement($xmlstr);

echo 'Agent | Code | Name'.PHP_EOL;
foreach ( $sxe->Agent as $agent )
{
    $attr = $agent->attributes();

    foreach ( $agent->Property as $property )
    {
        echo $attr['ID'].' | '.$property->Code.' | '.$property->Name.PHP_EOL;       
    }
}

标签:xmlreader,php,xml,simplexml
来源: https://codeday.me/bug/20191013/1910928.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有