首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >修复XML文档- Python 3

修复XML文档- Python 3
EN

Stack Overflow用户
提问于 2018-12-05 15:51:01
回答 1查看 76关注 0票数 0

我已经得到了大约600个XML文档,它们必须被解析以进行某些处理。但是由于缺少标记,它们不是有效的XML文档。它们应该具有的适当有效结构是-

代码语言:javascript
运行
复制
<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

EN

回答 1

Stack Overflow用户

发布于 2018-12-06 06:31:38

您可以使用SGML标记推断来生成缺少的end-element标记。编写包含以下内容的DTD文件doc.dtd

代码语言:javascript
运行
复制
<!ELEMENT doc O O (article+)>
<!ELEMENT article - O (bdy)>
<!ELEMENT bdy - O (#PCDATA)>

告诉SGML根据用于相应元素/标签的O标签省略指示符,可以省略用于articlebdy的结束元素标签,以及用于doc (用作文档元素的人工容器元素)的开始和结束元素标签。

然后插入下面这行

代码语言:javascript
运行
复制
<!DOCTYPE doc SYSTEM "doc.dtd">

在要解析的文件的开头。

然后安装例如。XML并对文件调用osx程序以生成格式良好的OpenSP。

另请参阅Querying Non-XML compliant structured data了解更多详细信息

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53627531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档