我正在尝试通过PHP将Word生成的XML文件转换为JSON。
我环顾四周,发现所有XML文件的最佳情况是以下代码(即使在PHP文档中):
$xml = simplexml_load_string($xml_string);
$json = json_encode($xml);
$array = json_decode($json,TRUE);
问题是,在simplexml_load_string
之后,我得到了一个空的SimpleXMLElement
对象,其余步骤实际上无法完成。
xml本身的开头是:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<w:wordDocument
,并且标记的前缀为w:
。
我尝试删除w:
,但是函数再次返回空对象。知道我可能会缺少什么吗?这种生成的XML有什么特别的地方吗?
答案 0 :(得分:1)
@ThW is正确:请勿将OOXML转换为JSON。这无济于事。
OOXML(DOCX背后的标准)的复杂性不会通过转换为JSON来解决。成功的JSON转换将具有挑战性,并且只能真正帮助我们理解将 XML用于文档,将JSON用于数据 的一般建议。
另请参见JSON or XML? Which is better?并注意:
1 具有讽刺意味的是,
OOXML中很少使用混合内容:通常运行文本
包装在w:r/w:t
元素中。如果您正在寻找灵感,
一个基于JSON的DOCX表示就是可能。
如果您想了解JSON如何驯服DOCX
复杂性,这也应有所帮助。 :-)
答案 1 :(得分:0)
查看以下问题:Simplexml_load_string($string) returns an empty object but $string contains xml? code below
非常相似。
您可以尝试打印$ xml吗? 也许错误不是simplexml_load_string,而是json_encode ...
BR 马克