我正在尝试读取我使用php给出的XML文件。我基本上想要写出文件的不同元素,但我真的很想知道如何做到这一点。
我希望能够写出以下内容:
E DBID - N
E DBID - RDBID - N
E DBID - RDBID - O
我真的很难想出这个,任何帮助都会感激不尽。
答案 0 :(得分:2)
我使用SimpleXMLElement
来读取/生成xml。
答案 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文件做这个。我的指针刚刚运行,