php读取xml文件

时间:2011-06-18 08:34:25

标签: php xml

我正在尝试读取我使用php给出的XML文件。我基本上想要写出文件的不同元素,但我真的很想知道如何做到这一点。

Here's some sample XML input.

我希望能够写出以下内容:

E DBID - N
E DBID - RDBID - N
E DBID - RDBID - O

我真的很难想出这个,任何帮助都会感激不尽。

4 个答案:

答案 0 :(得分:2)

我使用SimpleXMLElement来读取/生成xml。

请看:http://www.php.net/manual/en/book.simplexml.php

答案 1 :(得分:2)

如果不确切知道您遇到的问题,很难提供准确的建议。但我会尽力覆盖所有基础。

首先,您显然需要从您提供的URL加载原始XML。如果您已经管理过,请随意跳过此段;如果没有,请继续阅读。根据PHP环境的配置,您可以通过简单的file_get_contents()调用来阅读文件,或者您可能必须使用cURL。 cURL使用起来比较复杂,但如果PHP禁用了通过文件处理函数打开URL的功能,则可能需要使用cURL。

获得原始XML后,可以使用SimpleXML库将其转换为对象结构:

PHP有许多用于处理XML和HTML文档的内置API,但是SimpleXML是您要使用的API。 PHP手册有一些关于如何使用它的好例子 - 见http://www.php.net/manual/en/simplexml.examples-basic.php

将原始XML字符串加载到SimpleXML对象模型中是一个简单的单行程序:

$xmlstructure = new SimpleXMLElement($xmlstring);

现在,您可以将XML中的元素和属性简单地作为对象属性引用,如下所示:

foreach($xmlstructure->ROOT->E as $e) {
    print "E DBID - ".$e['DBID']."<br />";
}

(我使用了您提供的链接中的元素和属性名称,但您可能需要调整此代码以满足您的确切需求;它仅作为示例,因此我尚未对其进行测试)

SimpleXML API也可以使用XPath来引用元素和属性,如果您对此感到满意的话。有关详细信息,请参阅我参考的手册页中的示例。

希望有所帮助。

答案 2 :(得分:2)

查找以下php代码以阅读xml

<?php
$string = <<<XML
<?xml version='1.0'?>
<document>
 <title>Zweiundvierz...?</title>
 <from>Joe</from>
 <to>Jane</to>     
</document>
XML;

$xml = simplexml_load_string($string);
print"<pre>";
print_r($xml);
?>

如果您使用以下代码的文件:

<?php
if (file_exists('test.xml')) {
    $xml = simplexml_load_file('test.xml');
     print"<pre>";
    print_r($xml);
}
?>

答案 3 :(得分:0)

看看这个,这可以解决你的问题,不完全确定,但同样的事情我正在为xsd文件做这个。我的指针刚刚运行,

[xml解析] http://www.gayadesign.com/diy/reading-xml-with-php/