Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中解析多个类似的XML标记?_Php_Xml - Fatal编程技术网

如何在PHP中解析多个类似的XML标记?

如何在PHP中解析多个类似的XML标记?,php,xml,Php,Xml,我有一个XML文件,如下所示。我想用PHP解析这个XML文件 <id_list> - <ids> <id>195002349</id> <id>374487611</id> <id>192983648</id> <id>168378766</id>` <id>161573

我有一个XML文件,如下所示。我想用PHP解析这个XML文件

<id_list>
    -
    <ids>
        <id>195002349</id>
        <id>374487611</id>
        <id>192983648</id>
        <id>168378766</id>`
        <id>161573001</id>
    </ids>

    <next_cursor>0</next_cursor>
    <previous_cursor>0</previous_cursor>
</id_list>
读取XML时(使用
SimpleXMLElement($file)
),使用搜索“ID”,并在执行
的同时执行
循环以读取元素的文本

像这样:

$notes = new SimpleXMLElement('test2.xml', NULL, true);
$all = array();
$results = $notes->xpath("/id_list/ids/id");
foreach($results as $to){
    echo "<br>".$to;
    $all[]=(string)$to;
}

print_r($all);
$notes=newsimplexmlement('test2.xml',NULL,true);
$all=array();
$results=$notes->xpath(“/id_list/id/id”);
foreach(结果为$to){
回声“
”$to; $all[]=(字符串)$to; } 打印(全部);
这是一个方便的小函数,用于在两个指定文本段之间提取字符串。这可以用于解析XML文本、bbCode或任何其他带分隔符的代码/文本

function get_string_between($string, $start, $end){
    $string = " ".$string;
    $ini = strpos($string,$start);
    if ($ini == 0) return "";
    $ini += strlen($start);
    $len = strpos($string,$end,$ini) - $ini;
    return substr($string,$ini,$len);
}

$fullstring = "this is my [tag]dog[/tag]";
$parsed = get_string_between($fullstring, "[tag]", "[/tag]");

echo $parsed; // (result = dog)

为什么这很方便?它如何回答老年退休金计划的问题?你知道,他们不会让你为了好玩而阅读。提问前请先做研究。
function get_string_between($string, $start, $end){
    $string = " ".$string;
    $ini = strpos($string,$start);
    if ($ini == 0) return "";
    $ini += strlen($start);
    $len = strpos($string,$end,$ini) - $ini;
    return substr($string,$ini,$len);
}

$fullstring = "this is my [tag]dog[/tag]";
$parsed = get_string_between($fullstring, "[tag]", "[/tag]");

echo $parsed; // (result = dog)