Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.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_Curl_Parsing - Fatal编程技术网

尝试在php中解析格式怪异的xml

尝试在php中解析格式怪异的xml,php,xml,curl,parsing,Php,Xml,Curl,Parsing,我试图将XML数据分割成可用的字符串,以便以后在脚本中重用它们 我通过一个Curl请求接收数据,他的结果非常好。 现在切碎数据要了我的命 这是我正在接收的XML的一部分(整个数据部分大约有90行) 现在我当然可以做一个过滤数据的函数,但是我觉得有一种不同的方法来完成这项工作。 XML被加载到$var中 任何比阅读字符串等更好的帮助都会很有帮助。()很好。()很好。如果我没有正确理解您的问题,很抱歉,但是,简单地将XML放入其中有什么问题呢?到目前为止,XML是最容易使用的PHP XML AP

我试图将XML数据分割成可用的字符串,以便以后在脚本中重用它们

我通过一个Curl请求接收数据,他的结果非常好。 现在切碎数据要了我的命

这是我正在接收的XML的一部分(整个数据部分大约有90行)


现在我当然可以做一个过滤数据的函数,但是我觉得有一种不同的方法来完成这项工作。 XML被加载到$var中


任何比阅读字符串等更好的帮助都会很有帮助。

()
很好。

()
很好。

如果我没有正确理解您的问题,很抱歉,但是,简单地将XML放入其中有什么问题呢?到目前为止,XML是最容易使用的PHP XML API,它还支持XPath进行选择性数据提取:

$data = simplexml_load_string($var);
echo $data->skill[0]['key']; // will print "IT Specialist"
foreach ($data->skill as $skill) {
    printf('%s in group %s with max. age %d and %d year(s) of experience', 
        $skill['key'], $skill['group'], $skill['maxage'], $skill['worked']) . "\n";
}
/*
 * this will print:
 * IT Specialist in group IT with max. age 40 and 5 year(s) of experience
 * Assistant in group Office with max. age 35 and 5 year(s) of experience
 */
$keys = $data->xpath('/professions/skill/@key');
foreach ($keys as $key) {
    echo $key . "\n";
}
/*
 * this will print:
 * IT Specialist
 * Assistant
 */
// and you can do a lot more...

我想不出有什么理由要为创建的奇怪的数据结构而烦恼(除了编写自己的类似XML解析器的功能时),因为有一些工具可以更轻松地处理给定的问题。但是也许我误解了你的问题…

如果我没有正确理解你的问题,很抱歉,但是简单地将XML放入其中有什么问题呢?它是目前最容易使用的PHP XML API,并且还支持XPath进行选择性数据提取:

$data = simplexml_load_string($var);
echo $data->skill[0]['key']; // will print "IT Specialist"
foreach ($data->skill as $skill) {
    printf('%s in group %s with max. age %d and %d year(s) of experience', 
        $skill['key'], $skill['group'], $skill['maxage'], $skill['worked']) . "\n";
}
/*
 * this will print:
 * IT Specialist in group IT with max. age 40 and 5 year(s) of experience
 * Assistant in group Office with max. age 35 and 5 year(s) of experience
 */
$keys = $data->xpath('/professions/skill/@key');
foreach ($keys as $key) {
    echo $key . "\n";
}
/*
 * this will print:
 * IT Specialist
 * Assistant
 */
// and you can do a lot more...

我想不出有什么理由要为创建的奇怪的数据结构而烦恼(除了编写自己的类似XML解析器的功能时),因为有一些工具可以更轻松地处理给定的问题。但也许我误解了你的问题…

@Fons-你能停止恢复我的编辑吗?我所做的更改使您的XML实际显示出来。我正试图让它显示出来,谢谢您的编辑。@Fons-您能停止还原我的编辑吗?我的更改正在使您的XML实际显示。我正试图让它显示出来,谢谢您的编辑。现在查看这一点,将使您了解结果。现在获取数组中一半的数据,太棒了!记录值,而不是索引。我会想办法解决这个问题。谢谢!把方斯沃克斯当作一种魅力!也很快。非常感谢您现在就开始关注这一点,这将使您了解结果。现在就获得阵列中一半的数据,太棒了!记录值,而不是索引。我会想办法解决这个问题。谢谢!把方斯沃克斯当作一种魅力!也很快。非常感谢你的朋友们