我已经得到了大约600个XML文档,它们必须被解析以进行某些处理。但是由于缺少标记,它们不是有效的XML文档。它们应该具有的适当有效结构是-
<article xmlns:xlink="http://www.w3.org/1999/xlink">
<bdy>
.....
.....
.....
</bdy>
</article>
单个XML文档包含数百个这样的<article>...</article>
块。但问题是,这样的代码块缺少结束</bdy>
或</article>
标记,从而使得它们对于使用Python模块进行解析非常有用,例如- 'lxml','xml.dom','xml.etree.ElementTree‘等。
此外,由于大约有600个这样的文件,手动尝试修复它们似乎是不可行的。
关于如何正确处理它们有什么建议吗?
谢谢
"article.dtd“文件的下载方式如下:
article.dtd
发布于 2018-12-06 06:31:38
您可以使用SGML标记推断来生成缺少的end-element标记。编写包含以下内容的DTD文件doc.dtd
:
<!ELEMENT doc O O (article+)>
<!ELEMENT article - O (bdy)>
<!ELEMENT bdy - O (#PCDATA)>
告诉SGML根据用于相应元素/标签的O
标签省略指示符,可以省略用于article
和bdy
的结束元素标签,以及用于doc
(用作文档元素的人工容器元素)的开始和结束元素标签。
然后插入下面这行
<!DOCTYPE doc SYSTEM "doc.dtd">
在要解析的文件的开头。
然后安装例如。XML并对文件调用osx
程序以生成格式良好的OpenSP。
另请参阅Querying Non-XML compliant structured data了解更多详细信息
https://stackoverflow.com/questions/53627531
复制相似问题