我正在尝试将XML文档上传到数据库中以获取元数据。我作为模板已经使用这种XML多年了。直到最近我一直没有遇到任何问题。
当我上传时,我不断收到错误:
未找到预期的DTD标记。第1行,第3位。
我没有很多XML经验,但XML中的标题如下所示:
?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE metadata SYSTEM "http://www.fgdc.gov/metadata/fgdc-std-001-1998.dtd"><metadata>
我点击了链接,它将我带到了USGS.gov网站。一个介绍页面告诉我,由于联邦政府正在关闭,美国地质勘探局的网站已经关闭。我想知道你们中的任何一位XML专家是否可以告诉我该网站是否需要处于活动状态才能让我的XML从中读取DTD?如果我说得对,是否有可能的解决方法?
谢谢, 麦克
答案 0 :(得分:0)
好的,我不想这么快就回答我自己的问题,但我想我已经找到了问题。
XML的第一行如下:
?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE metadata SYSTEM "http://www.fgdc.gov/metadata/fgdc-std-001-1998.dtd"><metadata>
原来,该行中的fgdc网站链接被引用到USGS.gov网站。由于美国联邦政府关闭,该网站目前正在下降。我相信XML正试图从该网站引用DTD标记,并且由于该网站已关闭,它正在打破引用。
我找到了fgdc-std-001-1998.dtd here的副本:
我将标记复制并粘贴到xml编辑器中,将其保存为本地驱动器上的相同名称,并更改了xml中的引用。这似乎工作正常。