草庐IT

Python递归的几个经典案例

全部标签

python - 如何在 Python 中获取 XML 根元素的内容?

我有一个XML文件,例如:Firstline.Secondline.作为我想要得到的输出:'\nFirstline.Secondline.\n'我只是想注意,如果根元素包含其他嵌套元素,它们应该按原样返回。 最佳答案 我想到的第一个:fromxml.etree.ElementTreeimportfromstring,tostringsource='''Firstline.Secondline.'''xml=fromstring(source)result=tostring(xml).lstrip(''%xml.tag).rstrip

xml - xsl 只递归复制一些元素并删除一些后代

我要转型进入用简单的英语来说,我想递归地复制颜色元素,包括文本,忽略XML文档的其余部分并丢弃绿色元素。上面的示例有一些解决方案,但如果XML稍有不同,就会失败。例如,在color元素下添加nest元素,或者在colorother元素/strong>元素,或在color元素范围内的文本(GOODTEXT)和另一个在其范围之外的文本(BADTEXT)。GOODTEXTBADTEXTBADTEXTTWO我最感兴趣的是通用的解决方案,而不是针对此处介绍的示例进行定制。 最佳答案 这个新的转换足够通用以复制颜色元素无论它们的父元素是什么。我

python - 为什么 ElementTree.iterparse() 引发 ParseError?

importxml.etree.ElementTreeasETxmldata=file('my_xml_file.xml')tree=ET.parse(xmldata)root=tree.getroot()root_iter=root.iter()现在我可以调用root_iter.next()并获取我的Element对象。问题是我正在处理的真实文件很大,我无法将所有文件都放入内存中。所以我正在尝试使用:parse_iter=ET.iterparse(xmldata)如果我调用parse_iter.next()它会引发以下问题Traceback(mostrecentcalllast):F

xml - 在 XQuery 中,如何根据给定谓词递归过滤后代?

鉴于此XML片段:运行查询$root//A会得到A及其所有后代。到目前为止一切顺利。我想要的是通过谓词过滤A的后代,比如[@visible=true]。我希望查询返回相反,即。过滤掉所有与谓词不匹配(或其父元素不匹配)的子元素。想像一个用XML描述的GUI系统,在呈现它时我会在其中过滤可见元素的树。我认为这对于XSLT来说是微不足道的,但我一定会使用XQuery。 最佳答案 它也可以在XQuery中轻松完成。只要有一个函数递归地重写合格的节点,同时应用过滤器:declarefunctionlocal:rewrite($nodeasn

java - 如何使用 Python 生成 AST(以 XML 表示)的控制流?

我有以XML格式呈现的WHILE语言(http://www.program-analysis.com/while.html)的AST。目前,我不处理函数调用或递归。我需要为这个程序生成控制流。示例程序(//之后的数字表示由解析器生成的标签):beginx:=1;//1z:=2+x;//2x:=x+z;//3y:=z-x+z;//4w:=x+y+z;//5while(not(y上述程序的AST表示为:我需要生成程序的控制流。上述程序的控制流程是这样的:1->2,2->3,3->4,4->5,5->12,12->6,12->13,11->12,6->9,9->7,9->8,7->10,8-

python - 使用 Python ElementTree 提取 XML 标签中的文本

我有一个包含数万个XML文件(小文件)的语料库,我正在尝试使用Python并提取其中一个XML标签中包含的文本,例如,正文标签之间的所有内容,例如:sampletextherewithnestedtagsinthisparagraph然后编写包含此字符串的文本文档,然后继续向下移动XML文件列表。我正在使用effbot的ELementTree,但找不到执行此操作的正确命令/语法。我找到了一个使用miniDOM的dom.getElementsByTagName的网站,但我不确定ElementTree对应的方法是什么。任何想法将不胜感激。 最佳答案

python - 使用 minidom 从 XML 节点中提取文本

我浏览了几篇文章,但没有找到任何解决我问题的答案。示例XML=TEXT1TEXT2TEXT3所以我知道通常如果我将TextWithNodes提取为NodeList我会做类似的事情nodeList=TextWithNodes[0].getElementsByTagName('Node')forainnodeList:node=a.nodeValueprintnode我得到的只是无。我读到你必须写a.childNodes.nodeValue但节点列表中没有子节点,因为它看起来像所有NodeID都是结束标签?如果我使用a.childNodes,我会得到[]。当我得到a的节点类型时,它是类型1

python - 比较两个 XML 文件并更新其中一个文件中的元素

如果我的标题听起来令人困惑,我很抱歉。我正在编写一个比较2个XML文件的Python脚本。在这两个文件中,我们都有其ID与另一个文件中的ID相同的数据。例如源文件:123456blabla......someotherdata......abcdegfkgjk......somemoredata..........目标文件:123456......someotherdata......ghijkgfkgjk......somemoredata..........正如您在上面的示例中看到的,并非源文件中的所有ID也都在目标文件中。此外,虽然有2个数据组ID相同,但其中一个填写了“data

python - 在 python 中使用 minidom 修改(更改特定元素)XML 文件

我有n个xml文件,我想在其中更改三个元素。是第一个,第八个和第十个元素。所以我想最简单的方法是这样的(但我愿意接受任何其他建议,谢谢!!):DOM=xml.dom.minidomdoc=DOM.parse(open(FILENAME))a=doc.getElementsByTagName('string')foriinrange(len(a)):ifi==0:a[i]=newElementwithnewTextifi==7:a[i]=newElementwithnewTextifi==9:a[i]=newElementwithnewText这基本上就是我的文件:CHANGETHISa

python - 如何使用 Python LXML Objectify 创建相同的 XML 元素 3 次

我问了一个关于添加multipleelements的问题几周前,现在我遇到了类似的问题。我必须创建一些XML,其中包含以下内容:TestLineTestLine2TestLine3我不知道如何使用LXMLobjectify.Element()方法连续N次创建具有不同文本的相同元素。我试过这个:embossed=objectify.Element('embossed')embossed.line=objectify.Element("line")embossed.line=objectify.Element("line")但我最终在“浮雕”元素中只有一个“线条”元素。有谁知道如何做到这一