-1

可能重复:
将 XML 解析为数组

如何将我的 xml 文件转换为 php 数组,这是我的 xml 文件:

<?xml version="1.0" standalone="yes"?>
<EKG_DS>
  <EKG_PASIEN>
    <DOKTER>1</DOKTER>
    <NO_RM>0007</NO_RM>
    <NAMA>DONI</NAMA>
    <UMUR>36</UMUR>
    <ALAMAT>JAKARTA</ALAMAT>
    <TANGGAL>28/01/2013</TANGGAL>
  </EKG_PASIEN>
  <EKG>
    <ID_IRAMA_DSR>2</ID_IRAMA_DSR>
    <DENYUT_JNTG>2</DENYUT_JNTG>
    <ID_REG_DENYUT_JNTG>2</ID_REG_DENYUT_JNTG>
    <ID_GLMBG_P>2</ID_GLMBG_P>
    <ID_BENTUK_GLMBG_P>2</ID_BENTUK_GLMBG_P>
    <ID_REG_GLMBG_P>1</ID_REG_GLMBG_P>
  </EKG>
</EKG_DS>

我尝试使用此代码,但只是字符串...我需要一个数组..

if (file_exists('C:/download/171_EKG.xml')) {
    $xml = simplexml_load_file('C:/download/171_EKG.xml');
     print"<pre>";
    print_r($xml);
}

请帮我...

4

3 回答 3

0

使用 xpath 命令,它在创建数组时效果很好。

例如,要创建所有标签的数组,名为:A

$xml = new SimpleXMLElement("NameOfTheXMLFiles"); $arr=$xml->xpath("A");

然后获取任何带有标签 A 的元素作为数组:$arr[0]、$arr[1] 等。

于 2013-01-29T05:25:07.100 回答
0

我尝试了相同的代码,它返回了一个完美的对象数组,这很明显。

这是我尝试过的

if (file_exists('test.xml')) {
    $xml = simplexml_load_file('test.xml');
    print_r($xml);
    $xml->EKG_PASIEN->ALAMAT; //Returns JAKARTA
}

在上面的代码中,您还可以找到如何从对象数组访问单个记录。

于 2013-01-29T05:45:19.473 回答
0

试试这个:

$xml2Array = array();
if (file_exists('C:/download/171_EKG.xml')) {
    $xml = simplexml_load_file('C:/download/171_EKG.xml');
    foreach( $xml->children() as $key => $value ) {
        $nodes = array();
        foreach( $value->children() as $k => $v ) {
            $nodes[ ( string ) $v->getName() ] = ( string ) $v;
        }

        $node = ( string ) $value->getName();
        $xml2Array[ $node ][] = $nodes;
    }
}
print_r($xml2Array);

希望这可以帮助。

于 2013-01-29T05:46:36.727 回答