将 DOCX/Word 生成的 XML 转换为 JSON

Converting DOCX / Word-generated XML to JSON

我正在尝试通过 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 但函数 returns 又是一个空对象。知道我可能会遗漏什么吗?这种生成的 XML 有什么特别之处吗?

看看这个问题:Simplexml_load_string($string) returns an empty object but $string contains xml? code below

非常相似。

你能试着打印 $xml 吗? 也许错误不是 simplexml_load_string 但 json_encode...

BR 马克

@ThW 正确:不要将 OOXML 转换为 JSON。 它无济于事。

OOXML(DOCX 背后的标准)的复杂性无法通过转换为 JSON 来解决。成功的 JSON 转换将是具有挑战性的,并且只会真正提供对使用 XML 文档和 JSON 数据的一般建议的理解

另见 并注意:

  • OOXML 是 documents 的现有高度复杂标准,而不是 data.
  • 现有 OOXML 工具基础设施是 100% XML-based。
  • 代表文件需要代表 mixed-content – 有些东西 JSON 不是设计用来做的。1

1 有点讽刺, OOXML 中很少使用混合内容:通常是文本运行 包裹在 w:r/w:t 个元素中。如果你正在寻找灵感 JSON-based DOCX 表示可能 可能 ,就是这样。 如果您想了解 JSON 如何不驯服 DOCX 复杂性,这也应该有所帮助。 :-)