【发布时间】:2019-06-06 10:05:18
【问题描述】:
我正在尝试通过 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:s 但该函数再次返回一个空对象。知道我可能会错过什么吗?这种生成的 XML 有什么特别之处吗?
【问题讨论】:
-
简短回答:不要。 Word 是一种具有混合节点的复杂格式。将其解析为 SimpleXML 对象并对其进行序列化将不起作用(您会丢失大量信息),并且任何保留该信息的 JSON 结构都将与原始 XML 一样复杂。尝试使用 DOM 和 Xpath(更好地处理命名空间和混合节点)从 XML 中读取您需要的特定信息,并从中构建数组/对象结构。对生成的结构进行编码。
-
我不会说不要。 This python package 就是这样做的。您必须将 doc 从 PHP 传递到 python 服务器(aiohttp / django 等),但 that isn't impossible