草庐IT

python - 根据属性值使用 lxml 对子元素进行排序

我正在尝试根据属性值对文档中的某些子元素进行排序,而实际的排序功能似乎有效,而新排序的元素的拼接似乎无效。fromlxmlimportetreedefgetkey(elem):#Usedforsortingelementsby@LIN.#returnsatupleofintsfromtheexploded@LINvalue#'1.0'->(1,0)#'1.0.1'->(1,0,1)returntuple([int(x)forxinelem.get('LIN').split('.')])xml_str=""""""root=etree.fromstring(xml_str)lines=r

python - 在保留属性的同时使用 lxml.objectify 替换节点文本

使用lxml.objectify像这样:fromlxmlimportobjectifyo=objectify.fromstring("oldtext")o.b='newtext'结果为newtext,失去节点属性。似乎是直接用新创建的元素替换元素,而不是简单地替换元素的文本。如果我尝试使用o.b.text='newtext',它告诉我attribute'text'of'StringElement'objectsisnotwritable.有没有一种方法可以在objectify中执行此操作,而不必将其拆分为不同的元素并涉及etree?我只想替换内部文本,同时保留节点的其余部分。我觉得我在

python - 使用 python 的 lxml 剥离内联标签

我必须处理xml文档中的两种内联标签。第一种类型的标签包含我想保留在中间的文本。我可以用lxml处理这个问题etree.tostring(element,method="text",encoding='utf-8')第二种类型的标签包含我不想保留的文本。我怎样才能摆脱这些标签和他们的文字?如果可能的话,我宁愿不使用正则表达式。谢谢 最佳答案 我认为strip_tags和strip_elements在每种情况下都是您想要的。例如,这个脚本:fromlxmlimportetreetext="hello,keepmeandignoreme

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 - 如何在 Python 和 LXML 中解析 XML?

这是我的项目:我正在使用RRDTool从WeatherBug绘制天气数据图表。我需要一种简单、高效的方法来从WeatherBug下载天气数据。我使用的是一个非常低效的bash-script-scraper,但后来转向了BeautifulSoup。性能太慢(它在RaspberryPi上运行)所以我需要使用LXML。我目前拥有的:fromlxmlimportetreedoc=etree.parse('weather.xml')printdoc.xpath("//aws:weather/aws:ob/aws:temp")但是我收到一条错误消息。Weather.xml是这样的:http://w

Python 如何从 xml 文本节点中去除空格

我有一个xml文件如下MyNameMyAddress标签有额外的新行,是否有任何快速的Pythonic方法来修剪它并生成新的xml。我找到了这个,但它只修剪标签之间的部分而不是值https://skyl.org/log/post/skyl/2010/04/remove-insignificant-whitespace-from-xml-string-with-python/更新1-处理以下在中有尾空格的xml标记MyNameMyMyAddress两种xml的接受答案句柄更新2-我已经在下面的答案中发布了我的版本,我正在使用它来删除所有类型的空格并使用xml编码在文件中生成漂亮的xmlh

python - 如何使用 python lxml 获取 html 元素

我有这个html代码:aaabbbcccdddeeefffggghhh我使用此Python代码提取所有带有lxml模块。importurllib2importlxml.htmlcode=urllib.urlopen("http://www.example.com/page.html").read()html=lxml.html.fromstring(code)result=html.xpath('//td[@class="test"][position()=1orposition()=4]')效果不错!结果是:aaadddeeehhh(因此每个的第一列和第四列)现在,我必须提取:aaa

Python lxml 电子工厂

我一直在使用lxml“E-Factory”(又名ElementMaker)来创建xml文档。我正在尝试生成与此类似的xml文档:2011-11-11但是,使用E-factory,我不确定如何在“添加数据”元素中指定破折号。它似乎将破折号解释为减号。这是我一直在引用的文档:http://lxml.de/tutorial.html#the-e-factory重现错误的方法如下:fromlxmlimportetreefromlxml.builderimportElementMakerE=ElementMaker()URL=E.urlDATE_ADDED=E.date-addedxml=URL

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 - 使用 Python-Docx 设置字体属性

我正在使用Python-docx以编程方式创建一个word文档模块。我希望能够将我的标题居中,在我创建的表格中将某些词变为粗体,并进行其他基本标记。不幸的是,阅读模块中的源代码并没有给我很大的指导作用。我猜它与docx代码所基于的lxml/etree模块有关,但我对该库不太熟悉。有任何想法吗? 最佳答案 上面的链接指向python-docx的旧存储库。新版本(v0.3.0及更高版本)是完全重写的,位于此处:https://github.com/python-openxml/python-docx上面列出的所有功能都在当前版本中可用。