如何使用php解析xml?

17 浏览
0 Comments

如何使用php解析xml?

可能是重复问题:PHP的最佳XML解析器如何使用php解析XML文件\n我无法解析这个XML...真实的XML在这里\n



    
    
    

\n我如何解析它?问题出在XML文件的前两个字符上,它在远程网站的谷歌地图应用程序中正常运行。看看这个数组:\n

[0] => ÿþ

0
0 Comments

如何使用PHP解析XML?

问题的原因:

- 使用DOMDocument的loadXML()方法时出现错误,提示缺少开始标签。

解决方法:

- 确保XML文件的编码正确。

- 使用schemaValidate()方法检查XML的有效性。

- 尝试使用原始文档链接进行测试。

代码示例:

$xml = <<

    
    

ENDXML;
$dom = new DOMDocument();
$dom->loadXML($xml, LIBXML_NOBLANKS);
$dom->schemaValidate('yourSchema.xsd'); // 使用XSD验证有效性

请问您是使用koeri.boun.edu.tr/sismo/zeqmap/xmlt/son24saat.xml这个文件吗?请问您是如何解决这个问题的?目前我还无法解决这个问题。

0
0 Comments

如何使用PHP解析XML?

在解决这个问题之前,我们先看一下问题出现的原因。原始的XML文件中可能存在一些无效字符,这可能是一个字符集编码的问题。当我尝试直接使用原始文件时,它失败了,但当我将其复制到我的文本编辑器中时,一些字符被转换了(并且可以正常工作)。您可以尝试使用不同的字符编码,例如utf-8。

我认为您需要回到这个文档的来源。它似乎在前两个字符中有一些东西(可能是字节顺序标记)。而且Chrome认为它是土耳其语并想要翻译它。

感谢Ray,原始文档中存在XML炸弹。我正在尝试将其删除。

我将文档复制到TextPad中并保存。这使一些字符混乱了。这个文档的来源是哪里?

它是土耳其语。真正的问题是如何解析远程站点上的原始XML文件。

错误发生在前两个字符“ÿþ”处。请看数组[0] => ÿþ

下面是使用PHP解析XML的示例代码:

';
$xml = <<

    
    
    

ENDXML;
// 转换为对象
$obj = SimpleXML_Load_String($xml);
// 解析一些属性
foreach ($obj as $quake) {
    // 属性名区分大小写
    $loc = $quake->attributes()->lokasyon;
    $dep = $quake->attributes()->Depth;
    echo PHP_EOL . "$loc $dep";
}

以上代码使用SimpleXML_Load_String函数将XML字符串转换为对象,并使用foreach循环解析每个地震的位置和深度属性。

0