我如何用PHP解析这个XML,并用它生成新的PHP文件?

时间:2013-12-04 17:06:06

标签: php xml parsing

我的问题是用php解析xml。虽然我了解一些基本的php,但请注意我的理解非常有限。

这是我正在使用的XML结构的一个示例:

<XML_DATA item=“Beatles”>
<People>
    <Person Firstname=“George” Lastname=“Harrison” Instrument=“Guitar”>Harrison, George</Person>
    <Person Firstname=“John” Lastname=“Lennon” Instrument=“Guitar”>Lennon, John</Person>
    <Person Firstname=“Paul” Lastname=“McCartney” Instrument=“Bass”>McCartney, Paul</Person>
    <Person Firstname=“Ringo” Lastname=“Starr” Instrument=“Drums”>Starr, Ringo</Person>
</People>
</XML_DATA>

这就是我需要对这些数据做的事情:

  1. 将每个Person填充到索引页面上的表中,显示其名字和姓氏。
  2. 对于每个人,将生成一个页面。在该页面上,将显示名字,姓氏和工具。
  3. 在索引页面的表格中,每个人的名字/姓氏都将包装在一个锚标记中,并链接到相应的页面。
  4. 我该怎么做呢?

    感谢您的帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

以下是解析xml文件的方法:

    $doc = new DOMDocument('1.0', 'UTF-8');
    $doc->load('your/xml/file.xml');
    $datas = $doc->getElementsByTagName('Person');
    foreach ($datas as $data)
    {
        echo $data->getAttribute('Firstname'); //displays "George", then "John" and so on...
        echo $data->getAttribute('Lastname'); //displays "Harrison", then "Lennon" and so on...
        echo $data->getAttribute('Instrument'); // displays "Guitar", then "Guitar" and so on...
        echo $data->nodeValue //displays "Harrison, George", then "Lennon, John" and so on...
    }

现在您可以将数据存储在数组中,以便随时可以操作它们。