如果您想快速修复它,请执行以下操作(我感到懒惰时会这样做):// Will replace : in tags and attributes names with _ allowing easy access$xml = preg_replace('~(</?|\s)([a-z0-9_]+):~is', '$1$2_', $xml);这将转换<xhtml:到<xhtml_和</xhtml:到</xhtml_。有点hacky,如果涉及到CDATA NameSpaced XML容器块或UNICODE标记名称,可能会失败,但是我想您通常可以安全地使用它(还没有让我失败)。
我认为摆脱冒号或用某些人建议的其他方式代替冒号不是一个好主意。您可以轻松访问具有名称空间前缀的元素。您可以将标识名称空间的URL传递给children()方法的参数,也可以将名称空间前缀和“ true”传递给children()方法。第二种方法需要PHP 5.2及更高版本。SimpleXMLElement :: children