jjzjj

Python 模块 xml.etree.ElementTree 自动修改 xml 命名空间键

我注意到pythonElementTree模块在以下简单示例中更改了xml数据:importxml.etree.ElementTreeasETtree=ET.parse("./input.xml")tree.write("./output.xml")我不希望它发生变化,因为我已经完成了简单的读写测试,没有进行任何修改。然而,结果显示了不同的故事,尤其是在namespace索引中(nonage-->ns0,d3p1-->ns1,i-->ns2):输入.xml:0001-01-01T00:00:00/Applications/Safari.app/Contents/MacOS/Safari

python - 解析带有前缀标签的 .xml? xml.etree.元素树

我可以读取标签,除非有前缀。我没有幸运地搜索SO以查找以前的问题。我需要阅读media:content。我尝试了image=node.find("media:content")。Rss输入:PopularPhotographyinthelast1weekfoophotography/misc...我可以读取兄弟标签title。fromxml.etreeimportElementTreewithopen('cache1.rss','rt')asf:tree=ElementTree.parse(f)fornodeintree.findall('.//channel/item'):title

python - 使用 Python 的 xml.etree 查找元素开始和结束字符偏移

我有如下所示的XML数据:ThecaptialofSouthAfricaisPretoria.我希望能够提取:目前在etree中提供的XML元素。文档的完整纯文本,位于开始和结束标记之间。每个起始元素在纯文本中的位置,作为字符偏移量。(3)是目前最重要的需求;etree提供(1)fine。我看不出有什么方法可以直接做(3),但希望遍历文档树中的元素会返回许多可以重新组合的小字符串,从而提供(2)和(3)。但是,请求根节点的.text仅返回根节点和第一个元素之间的文本,例如“的首都”。用SAX做(1)可能涉及实现很多已经写过很多次的东西,例如迷你王国和etree。使用lxml不是此代码要

Python: lxml.etree.tostring(with_comments=False)

我调用以下命令并得到以下错误:>>>lxml.etree.tostring([tree].getroot(),with_comments=False)ValueError:CanonlydiscardcommentsinC14Nserialisation我不知道C14N是什么,但我希望能解释一下如何实现它并使用with_comments=False运行上述命令。(是的,我知道我可以使用正则表达式去除评论。请不要提供正则表达式作为解决方案。)背景:我想通过http连接传输我的xml文档。我正在使用lxmlPython库。我在Python2.7.1上运行 最佳答

python - xml.etree 还是 xml.dom?

我正在尝试读取一些xml,但我不确定应该使用哪个库。xml.etree和xml.dom哪个更好,为什么?请解释你的答案并给出论据。此外,您认为其中之一会被弃用吗?哪个? 最佳答案 两者都不会被弃用。ElementTree(xml.etree)是一个用于访问XML的pythonicAPI。DOM(xml.dom)是一个跨平台、独立于语言的标准。除非有令人信服的理由改用XMLDOM,否则请使用ElementTree。对于Python代码,ElementTreeAPI比DOMAPI更易于使用。如果你不反对安装额外的python库,你应该看

python - lxml.etree : Start tag expected, '<' 未找到,第 1 行,第 1 列

我想获取一些简单的xml文件并将它们一次性全部转换为CSV(尽管这段代码一次只针对一个文件)。在我看来好像没有正式的namespace,但我不确定。我有这段代码(我使用了一个header,SubmittingSystemVendor,但我真的想将它们全部写入CSV:importcsvimportlxml.etreex=r'C:\Users\...\jh944.xml'withopen('output.csv','w')asf:writer=csv.writer(f)writer.writerow('SubmittingSystemVendor')root=lxml.etree.from

python - 如何调试 lxml.etree.XSLTParseError : Invalid expression error

我试图找出为什么lxml无法解析由具有各种xml:include的“根”文档组成的XSL文档。我得到一个错误:Traceback(mostrecentcalllast):File"s.py",line10,inxslt=ET.XSLT(ET.parse(d))File"xslt.pxi",line409,inlxml.etree.XSLT.__init__(src/lxml/lxml.etree.c:151978)lxml.etree.XSLTParseError:Invalidexpression这告诉我错误在lxml源中的什么位置,但是有没有办法通过lxml获得更多关于xsl中错误

Python:忽略 xml.etree.ElementTree 中的 namespace ?

如何告诉ElementTree忽略XML文件中的命名空间?例如,我更愿意查询modelVersion(如语句1中所示)而不是{http://maven.apache.org/POM/4.0.0}modelVersion(如语句2中所示)。pom="""4.0.0"""fromxml.etreeimportElementTreeElementTree.register_namespace("","http://maven.apache.org/POM/4.0.0")root=ElementTree.fromstring(pom)print1,root.findall('modelVers

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。但是我的文件失败了,因为

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