jjzjj

ElementTree

全部标签

python - 为什么 xml.etree.ElementTree 被认为是不安全的?

根据CreatingasimpleXMLfileusingpython,在Python中生成XML文件的最简单方法之一是使用Python的内置ElementTreeXMLAPI。然而,thePython3documentation包括以下警告:Warning:Thexml.etree.ElementTreemoduleisnotsecureagainstmaliciouslyconstructeddata.IfyouneedtoparseuntrustedorunauthenticateddataseeXMLvulnerabilities.我曾计划使用ElementTree库来构造具有

python - 使用 Python 的 ElementTree 查找顶级 xml 注释

我正在使用Python的ElementTree解析一个xml文件,就像这样:et=ElementTree(file=file("test.xml"))test.xml以几行xml注释开始。有没有办法从et那里得到这些评论? 最佳答案 对于ElementTree1.2.X,有一篇关于ReadingprocessinginstructionsandcommentswithElementTree的文章(http://effbot.org/zone/element-pi.htm)。编辑:替代方法是使用实​​现ElementTreeAPI的l

python - lxml.etree 和 xml.etree.ElementTree 添加没有前缀的命名空间(ns0、ns1 等)

是否有任何解决方案可以添加不带前缀的命名空间(我的意思是这些ns0、ns1),它们适用于所有etree实现,或者每个实现都有可行的解决方案?目前我有以下解决方案:lxml-元素的nsmap参数(c)ElementTree(python2.6+)-以空字符串作为前缀注册命名空间方法问题是python2.5中的(c)ElementTree,我知道有_namespace_map属性但将其设置为空字符串会创建无效的XML,将其设置为None添加默认的ns0等namespace,是否有任何可行的解决方案?我猜Element('foo',{'xmlns':'http://my_namespace_

python - 使用 Python 在 ElementTree 中添加兄弟元素

用XML比如我需要添加类似的兄弟ElementTree有添加兄弟节点的功能吗?如果没有,我想我需要一个函数来获取父节点并添加子节点,我该怎么做? 最佳答案 在标准库的版本中,您不能直接访问父级,您必须从父级开始工作,或者自己跟踪父子关系,阅读thesetips(来自图书馆的作者)。如果您使用lxml但是,有getparent()方法(您还有getnext()和getprevious()),但更方便:有是addnext()和addprevious()。因此,根据您使用的ElementTree实现选择这些解决方案之一(或者甚至可能切换您

python - 对使用哪个 XML 处理选项感到困惑

我是Python的新手,我才刚刚开始使用XML解析。我对使用XML的所有选项感到有点不知所措,我希望有经验的人可以为我正在处理的简单问题提供一些建议(也许还有代码示例??)。我正在开发一个不涉及数据库的简单Python联系人管理应用程序-每个联系人的信息都使用XML存储在单独的文本文件中。例如,假设以下是文件“1234.xml”的内容1234JohnnyAppleseed81455512121234MainStreetHometownOH1313MockingbirdLaneWhitePlainsNY为了举例,我们假设只能有一个电话号码,但有多个地址block。对于我在这里所做的事情,

python - 用 Python 的 elementtree 替换作为数字字符引用一部分的&符号

我正在使用Python的elementtree模块编写一些XML(我正在使用Python2.7和3.2)。我的某些元素的文本字段包含数字字符引用。但是,一旦我使用elementtree的tostring,字符引用中的所有&符号都将替换为&。显然,elementtree或底层解析器无法识别这里的&符号是数字字符引用的一部分。经过一番搜索,我发现了这个:elementtreeandentities但是,我也不热衷于此,因为在我当前的代码中,我预见到这最终可能会导致其自身出现问题。除此之外,我在这方面发现的很少,所以也许我只是忽略了一些明显的东西?以下简单的测试代码说明了问题(使用P

python - ElementTree iterparse 需要多长时间?

在回答另一个问题时,有人向我展示了以下教程,其中作者声称使用iterparse在3秒内解析了一个~100MB的XML文件:http://eli.thegreenplace.net/2012/03/15/processing-xml-in-python-with-elementtree/我正在尝试解析一个大约90MB的XML文件,并且我有以下代码:fromxml.etree.cElementTreeimport*count=0forevent,eleminiterparse('foo.xml'):ifelem.tag=='identifier'andelem.text=='bar':co

python - 如何使用python中的elementtree处理xml文件中格式不正确的字符

我正在使用ElementTree.parse函数解析用utf-16编码的xml文件。当文件中包含一些格式不正确的字符(例如♀、♂等)时,程序将崩溃。并且出现错误“xml.parsers.expat.ExpatError:notwell-formed(invalidtoken)”。我怎样才能避免这个错误并解决这个问题?我怎么能忽略这些格式不正确的字符呢?谢谢!下面是我的代码:tree=ElementTree()root=tree.parse(xml_file)xml_file是以UTF-16格式编码的文件。该错误会指出格式不正确的字符的行号和列号。 最佳答案

Python xml 遍历问题和答案

我将调查回复存储在xml中,不幸的是xml不是统一构建的。请参阅下面的xml。我想遍历div,然后拉出所有元素作为问题,但我不确定如何处理答案,因为它们有时包含在子中。有时不是。本来想用elementtree的intertext或者beautifulsoup。但是,如果我执行soup.find_all('div'),BeautifulSoup会返回所有div,包括内部的div。.tree.itertext()有点工作,但如果可能的话,我不想有太多的嵌套循环。有什么建议可以最好地处理这种情况吗?Question1:Whatisyourname?MynameisPeter.Question

python - 查找子节点包含一些文本的非根父节点

我有一些xml;foo987654bar15245baz87742foo123456我正在使用python和etree模块,我想选择子节点以“foo”开头的所有节点。我知道etree对xpath的支持有限,但我是xpath新手,所以我正在努力寻找最佳解决方案。我会想一些类似的东西parent[(contains(child,'foo'))]但我想拒绝包含foo但不是以foo开头的父节点(即125456foo),所以我不确定这是否可行。此外,我不确定etree是否支持这种级别的xpath...编辑:另一个可接受的解决方案是选择其child的文本在列表中的parent。伪代码parent=