php遍历xml,php遍历数组的方法

发布时间:2023-01-08

本文目录一览:

  1. 使用php循环出xml中多个相同重复的标签
  2. php 获取xml某个节点的所有内容
  3. getelementsbytagname,Php怎么读取xml中指定节点的指定名称的属

使用php循环出xml中多个相同重复的标签

重复的 xml 元素节点可以用 foreach 循环取出重复元素。 示例:

// $xmlData = file_get_contents('items.xml');
$xmlElement = simplexml_load_string($xmlData, 'SimpleXMLElement', LIBXML_NOCDATA);
$elements = $xmlElement->CustAcctId;
foreach ($elements as $element) {
    var_dump($element);
}

提示:使用 simplexml_load_string($xmlString, 'SimpleXMLElement', LIBXML_NOCDATA) 解析 xml 字符串,如果是 xml 文件,可以 file_get_contents 读取文件。

php 获取xml某个节点的所有内容

php是可以读取读取xml文件的。同时也可以遍历节点。网上有很多方法。你可以百度下。这里给你贴代码的话有很多代码。 举例:有个名字为a.xml的文件。内容为:

<?xml version="1.0" encoding="gb2312"?>
<xml>
    <list>111</list>
    <list>2222</list>
    <list>3333</list>
</xml>

读取:

<?php
$xml = new DOMDocument();
$xml->load('a.xml');
foreach ($xml->getElementsByTagName('list') as $list) {
    $value = $list->firstChild->nodeValue;
    echo $value . "<br />";
}
?>

输出为:

111
222
333

getelementsbytagname,Php怎么读取xml中指定节点的指定名称的属

首先,你的xml文件,缺少root元素,version后边没有"结尾。 然后是你解析的思路是: 先用simplexml_load_string或者$xml = simplexml_load_file('test.xml');,读取xml,然后用get_object_vars,转成数组,然后根据数组,找出对应关系,或者在生成数组的时候直接写成'lisan'='no';这个关系。简单点就是直接读成数组,然后遍历,找到对应的值之间的关系就OK。 用到的函数:

function getXmlData ($strXml) {
    $pos = strpos($strXml, 'xml');
    if ($pos) {
        $xmlCode = simplexml_load_string($strXml, 'SimpleXMLElement', LIBXML_NOCDATA);
        $arrayCode = get_object_vars_final($xmlCode);
        return $arrayCode;
    } else {
        return '';
    }
}
function get_object_vars_final ($obj) {
    if (is_object($obj)) {
        $obj = get_object_vars($obj);
    }
    if (is_array($obj)) {
        foreach ($obj as $key => $value) {
            $obj[$key] = get_object_vars_final($value);
        }
    }
    return $obj;
}