jjzjj

Python:加入和写入(XML.etrees)存储在列表中的树

我正在遍历一些XML文件并生成我想存储在defaultdict(list)类型中的树。在每个循环中,找到的下一个child将存储在字典的单独部分中。d=defaultdict(list)counter=0forchildinroot.findall(something):tree=ET.ElementTree(something)d[int(x)].append(tree)counter+=1因此,对多个文件重复此操作会产生很好的索引结果;一组在不同解析文件中位于位置1的树,依此类推。问题是,我如何连接所有d,并将树(作为累积树)写入文件?我可以遍历字典来获取每棵树:forxind:f

python - Python 的 xml.etree.ElementTree 叶元素的意外 bool 行为

我在使用Python2.6.5xml.etree.ElementTree库时遇到了一些问题。特别是,如果我像下面这样设置一个简单的xml元素>>>importxml.etree.ElementTreeasetree>>>xml=etree.fromstring("xy")访问内部元素节点时,我对库没有任何问题,例如:>>>etree.tostring(xml.find('b'))'xy'>>>xml.find('b')==NoneFalse>>>bool(xml.find('b'))True但是,我遇到了一个奇怪的叶元素节点的bool值解释,请参阅:>>>etree.tostring(

python - 如何使用 QName(python xml.etree.ElementTree?)

我已经阅读了大量关于QName的资料,但我找不到任何关于如何使用它的好例子。有人可以给我一个简单的例子来说明如何使用QName并解释它将在什么上下文中使用吗? 最佳答案 QName可以在构造具有与包含元素不同的namespace中的属性的XML文档时使用。示例(Python2.7):fromxml.etreeimportElementTreeasETNS1="http://example1.com"NS2="http://example2.com"ET.register_namespace("x",NS1)ET.register_n

python - xml.etree.ElementTree 的 findall() 和 iterfind() 有什么区别

我用下面的方法写了一个程序fromxml.etree.ElementTreeimportETxmlroot=ET.fromstring([myxmlcontent])forelementinxmlroot.iterfind(".//mytag"):dosomething它在我的python(v2.7.1)上工作正常,但在我将它复制到另一台安装了pythonv2.6.x的计算机后,不支持iterfind(),在pythondocument,下面列出了描述findall(match)Findsallmatchingsubelements,bytagnameorpath.Returnsali

python - 使用 xml.etree.ElementTree 获取子节点的所有实例

我有以下XML文件作为输入:0115555555777770112222222100我想输出dialledDigits的所有值。但是,我的代码只显示dialledDigits的第一个实例。dialledDigits{}5555555我想要的输出应该包含这两个实例。dialledDigits{}5555555dialledDigits{}2222222这是我的代码importxml.etree.ElementTreeasETtree=ET.parse('as.xml')root=tree.getroot()callevent=root.find('callEvents')Moc1=cal

attributeError:'xml.etree.elementtree.element'对象没有属性'encode'

我正在尝试制作桌面通知器,为此,我正在从网站上删除新闻。运行程序时,我会收到以下错误。news[child.tag]=child.encode('utf8')AttributeError:'xml.etree.ElementTree.Element'objecthasnoattribute'encode'我该如何解决?我完全是新手。我尝试搜索解决方案,但它们都不对我有用。这是我的代码:importrequestsimportxml.etree.ElementTreeasET#urlofnewsrssfeedRSS_FEED_URL="http://www.hindustantimes.com/

python - etree.tostring() xml python 中的 pretty_print

我正在尝试使用pretty_print选项打印出xml文档。但这是一个错误TypeError:tostring()得到了一个意外的关键字参数'pretty_print'我是不是漏掉了什么?defCreateXML2():Date=etree.Element("Date",value=time.strftime(time_format,time.localtime()));UserNode=etree.SubElement(Date,"User");IDNode=etree.SubElement(UserNode,"ID");print(etree.tostring(Date,prett

python - 使用查找方法(xml.etree.ElementTree)后获取父元素

我正在处理一个巨大的xml文件并尝试从不同的元素中提取信息。importxml.etree.ElementTreeasETtree=ET.parse('t.xml')root=tree.getroot()要查找我使用find方法的元素:elm=root.find('.//Element[@elmid="1234"]')我从中提取信息,此外我还需要来自父元素的信息。但是elm.find('..')仅返回None,如此处所述:https://docs.python.org/3/library/xml.etree.elementtree.html现在我使用以下内容:prt=root.find

python - 使用 Python 解析大型 xml 文件 - etree.parse 错误

尝试使用lxml.etree.iterparse函数解析以下Python文件。“示例输出.xml”Item1Description1Item2Description2我尝试了ParsingLargeXMLfilewithPythonlxmlandIterparse中的代码在etree.iterparse(MYFILE)调用之前我做了MYFILE=open("/Users/eric/Desktop/wikipedia_map/sampleoutput.xml","r")但是出现如下错误Traceback(mostrecentcalllast):File"/Users/eric/Docum

python - 使用 lxml.etree 移动整个元素

在lxml中,给定一个元素,是否可以将整个元素移动到xml文档中的其他位置,而不必读取它的所有子元素并重新创建它?我最好的例子就是改变parent。我已经翻阅了一些文档,但运气不佳。提前致谢! 最佳答案 .append、.insert和其他操作默认这样做>>>fromlxmlimportetree>>>tree=etree.XML('')>>>node_b=tree.xpath('/a/b')[0]>>>node_d=tree.xpath('/a/d')[0]>>>node_d.append(node_b)>>>etree.tost