我有XML(在别处产生的,在其上没有控制),其含有讨厌嵌套CDATA,诸如例如:LXML嵌套CDATA部分
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE prc SYSTEM "prc.dtd">
<body>
<![CDATA[Towards Automatic Generation blabla
<definition>
<query><![CDATA[ <root[AByS]> <sc methodName="get_NYT.ARTICLES" serviceURL="http://www.nytimes.com/srv/">
<params> <param name="subjectP" value="{ subjectP }"> </> </> </> <sc methodName="get_WP.ARTICLES"
serviceURL="http://www.wpost.com/srv/"> <params> <param name="subjectP" value="{ subjectP }"> </> </>
</> </>; ]]></query> </definition> </serviceDefinition> (b) Figure 7. (a) The query for Web service
]]>
</body>
lxml
(Python)的与
XMLSyntaxError: Opening and ending tag mismatch: body line 3 and query, line 9, column 28
弹
,因为它认为第一个]]>
结束CDATA,实际上它只结束内部CDATA,而下面的标记</query>
仍然在外部CDATA内,不应该被解析。
什么是解析这种XML的好方法?这意味着我希望CDATA中的所有内容都保持未解析的数据,即使它包含更多的CDATA。写我自己的解析器?想法?
嗯,我没有看到这样的转义如何工作......也不知道这些信息如何帮助我解析畸形的XML,即使它工作。 – user124114 2013-02-19 21:38:23