在Excel中打开xml文件时出现错误-1072896636"DTD禁止",我该怎么办?

Han*_*hin 5 xml excel dtd

我正在尝试在Excel 2013中打开一个XML文件,但它说它不能这样做,因为"DTD禁止".我已经搜索了解决方案,但我找到的只是一些应该解决问题的代码.

但我根本得不到它!什么代码?我只是打开文件,我不是在编写程序或任何东西.我应该在打开文件之前大声朗诵代码还是什么?对不起,但我发现它真的很荒谬.

是否有一些解决方案只需打开文件而无需为其编写程序?如果没有,我该怎么做这个代码?

我正在谈论的代码如下

Set xmlDoc = CreateObject("Msxml2.DOMDocument.6.0")
xmlDoc.setProperty "ProhibitDTD",False
xmlDoc.load xmltoload.xml
Run Code Online (Sandbox Code Playgroud)

我发现该文件可能应该在Word中打开,而不是Excel,但Word 2013给了我同样的错误.

答:
看来该文件毕竟应该在Excel中打开.我在互联网上发现Office 2007及更早版本并没有禁止DTD.所以我通过在Excel 2003中打开所需的文件成功绕过了这个问题.

小智 6

解决方法非常简单,打开XML文件,然后删除指向DTD位置的行.Excel将根据您的XML文件创建XML架构.


Moo*_*les 1

所有 XML 文档都依赖于允许存在哪些字段以及每个字段中允许存在哪些值的定义。这些是通过链接到文档类型定义(“DTD”)或 XML 架构文件在每个 XML 文件中定义的。

我的理解是Excel 2007及更高版本不支持DTD。相反,他们期望您的 XML 文件将引用 XML 架构。

因此,您的根本问题是您的 XML 文件引用了 DTD 文件,并且您需要将 DTD 文件转换为 XML 架构文件(您可以通过使用 Notepad++ 等程序打开文档并查看原始文本来验证这一点。)

有很多工具可以帮助您做到这一点,但坦率地说,我已经尝试让它们全部工作了几个小时,但仍然没有 Excel 打开我的 XML(在谷歌上搜索了相同的内容)错误代码。)

如果您只是尝试一次性打开一个 XML 文件,您可能不想投入太多精力——但如果我找到一种快速且简单的解决方案,我会来更新。

如果您只需要打开它,您可以下载一个免费程序,将 XML 转换为 CSV:

http://xmltocsv.codeplex.com/

我尝试了一下,效果很好——我的文件立即在 Excel 2013 中打开。问题暂时解决了。

当然,XML 的要点是数据可以通过上下文与其他数据相关联,如果没有正确的架构或 DTD 文件,这些数据就会丢失。但是,如果您只想打开文件,那么现在应该可以使用(对于那些还没有 Excel 2003 的人,尽管我想这对您来说也同样容易。)