草庐IT

python - 如何使用 xml.etree 解析外部实体,如 lxml.etree

我有一个使用lxml.etree解析XML的脚本:fromlxmlimportetreeparser=etree.XMLParser(load_dtd=True,resolve_entities=True)tree=etree.parse('main.xml',parser=parser)我需要load_dtd=True和resolve_entities=True从globals.xml解析&emptyEntry;:]>&emptyEntry;KEYVALUEKEYVALUE使用globals.xml">现在我想从非标准的lxml转移到标准的xml.etree。但是我的文件失败了,因为

XMLSchema : Is it possible to calculate how valid an invalid document is (eg. 作为百分比)?

我在Python中使用lxml根据XML模式定义验证大量XML文档。这些文件中有很多没有经过验证——目前预计它们不会——但如果我能计算出它们的有效性,以百分比的形式用于报告目的,这将很有用。我有能力使用xmllint或其他命令行工具,如果它们能够提供有用的统计信息的话。 最佳答案 lxml解析器提供了一种获取alistoftheerrors的方法在尝试解析文档时发生。将它与解析器的recoverkeywordargument结合起来你会得到这样的东西:#Warning,untested,maynotworkparser=etree.

Python - 通过 lxml 添加顶级评论

我正在使用python2.6和lxml,我想像这样将顶级注释添加到xml中我用谷歌搜索了这个addprevious()方法来做到这一点,这是我的代码:root=ET.Element("DCSubtitle")root.addprevious(ET.Comment('toplevelcomment'))tree=ET.ElementTree(root)tree.write(sys.stdout,pretty_print=True,xml_declaration=True,encoding='UTF-8')但是,addprevious()似乎不太符合逻辑,你必须添加第二行然后添加第一行,有

python - 使用 lxml,是什么导致 "lxml.etree.XMLSyntaxError: Document is empty"错误?

我正在使用mechanize/cookiejar/lxml来读取页面,它适用于某些页面但不适用于其他页面。我在其中遇到的错误是标题中的错误。我不能在这里发布页面,因为它们不是SFW,但是有没有办法修复它?基本上,这就是我所做的:importmechanize,cookielibfromlxmlimportetreebr=mechanize.Browser()cj=cookielib.LWPCookieJar()br.set_cookiejar(cj)br.set_handle_equiv(True)br.set_handle_gzip(True)br.set_handle_redire

python - lxml 中的通配符命名空间

如何使用忽略xml命名空间的xpath进行查询?我正在使用pythonlxml库。我尝试了this中的解决方案问题,但似乎不起作用。In[151]:e.find("./*[local-name()='Buckets']")File"",lineunknownSyntaxError:invalidpredicate 最佳答案 Usee.xpath,note.find:importlxml.etreeasETcontent='''\1somestuff'''root=ET.fromstring(content)print(root.xp

python - 有效的 XPath 表达式

只有两个问题:如何检查分配给变量的字符串是否对应于有效的XPath表达式?如果请求的资源不存在,我如何返回自定义的错误消息? 最佳答案 如果XPath无效,您将得到一个异常。如果请求的节点不存在,你会得到一个空的结果设置。例如:fromlxmlimportetreefromStringIOimportStringIOtree=etree.parse(StringIO(''))try:tree.xpath('\BADXPATH')print'1.ValidXPath'exceptetree.XPathEvalError,e:print

python - lxml 无法解析 xml(编码是否为 utf-8)[python]

我的代码:importreimportrequestsfromlxmlimportetreeurl='http://weixin.sogou.com/gzhjs?openid=oIWsFt__d2wSBKMfQtkFfeVq_u8I&ext=2JjmXOu9jMsFW8Sh4E_XmC0DOkcPpGX18Zm8qPG7F0L5ffrupfFtkDqSOm47Bv9U'r=requests.get(url)items=r.json()['items']没有编码('utf-8'):etree.fromstring(items[0])输出:ValueErrorTraceback(mostr

python - 如何使用 lxml 和 XPATH 在单个查询中检索所有子节点

这是我的xml数据NewYorknon-capitalLondoncapital使用lxml和pythonfromlxmlimportetreeasETparser=ET.XMLParser(recover=True)tree=ET.fromstring(xml_data,parser)print(tree.xpath('//city//name/text()|//city//type/text()'))上面的代码有效,但我想要一个嵌套数组描述为[['NewYork','non-capital'],['London','capital']]获得上述内容的准确xpath查询/查询/循环组

python - 在特定位置插入xml节点

我想构建以下xml:Hello2014-01-011给定以下代码结构,我将如何插入节点在英雄节点之前?item=etree.SubElement(self.xml_node,'Item')etree.SubElement(item,'Name').text='Hello'etree.SubElement(item,'Hero').text=1#Now,howtoinsertthe'Date'elementbeforetheHeroelement? 最佳答案 使用etree.SubElement始终将子元素附加到父元素的末尾item.

python - 带有 : in name in lxml 的标签

我正在尝试使用lxml.etree来解析Wordpress导出文档(它是XML,有点像RSS)。我只对已发布的帖子感兴趣,因此我使用以下内容循环浏览已发布的帖子:foritemindata.findall("item"):ifitem.find("wp:post_type").text!="post":continueifitem.find("wp:status").text!="publish":continuewrite_post(item)其中data是所有item标签所在的标签。item标签包含帖子、页面和草稿。我的问题是lxml找不到名称中包含:的标签(例如wp:post_t