【发布时间】:2012-08-24 12:40:29
【问题描述】:
我有一个文件,其中包含类似 xml 的标签和一堆无效的 xml 数据,因此我无法在文件上使用像 xmllint 这样的普通 xml 验证器。我想忽略无效的 xml 数据,只检查文件的格式是否正确。
<?xml version="1.0" encoding="utf-8"?>
<HOST>
<VERSION>5</VERSION>
<OUTPUT>
bunch of text which also contains tags like <SYSTEM>
more tags like <-> <temp> & ;
some more text and numbers
</OUTPUT>
</HOST>
在上面的示例中,我可以忽略
我可以创建自己的 dtd/xsd 吗?使用 Perl 查找我想要的标签并忽略其余标签。
我的主要问题是我不知道正确的关键字来描述我的问题,这就是为什么谷歌没有给我正确的结果。有人可以将我推向正确的方向。谢谢
【问题讨论】:
-
无效部分总是在OUTPUT标签内吗?
-
是的。我只想补充一点,这些文件很大,有些包含 10k 行。
-
您可以通过某种方式在所有
<OUTPUT>标签中添加<![CDATA[]]>。这将使您能够使用任何适当的解析器解析/验证文件。问题是你必须以一种相当丑陋的方式这样做。 -
我真的不想在文件中写入/修改任何内容,除非它是最坏的解决方案。所以我在想我可以创建自己的 xml 来检查开始和结束标签,而不关心
标签: xml perl validation