【问题标题】:rewrite ElementTree code in lxml在 lxml 中重写 ElementTree 代码
【发布时间】:2023-03-24 14:32:02
【问题描述】:

我正在编写代码以使用 ElementTree 从 xml 文件中提取文本,但我发现 lxml 提供了更方便的 xpath 功能。所以我想知道如何在 lxml 中重写这一行

if x.nodeName == 'a:pPr' and x.getAttribute('lvl') == '2' and x.hasAttribute('marL') == False:

目前建议我使用这个..

'/p:sld/p:cSld/p:spTree/p:sp/p:nvSpPr/p:nvPr/x[@type="body" and  @sz="quarter"  and  @marL]'

希望我的问题很清楚!

【问题讨论】:

    标签: python xml python-2.7 lxml elementtree


    【解决方案1】:

    我假设您已经处于准备使用 xpath 的阶段。如果不是http://lxml.de/parsing.html 应该会有所帮助。 您在第一行中搜索的元素的 xpath 应如下所示:

    "//a:pPr[@lvl=2 and not(@marL)]"
    

    但是我不得不承认我不知道你的第二个 sn-p 应该如何找到那个元素 O_o

    【讨论】:

    • 非常感谢..我从昨天开始就在尝试这个..cheers :)
    • 你能告诉我我应该在lxml中用什么来替换x.firstChild.nodeName == 'a:r',因为getnext()getprevious()不会给下一个孩子,而是给下一个父节点本身..我希望我的问题很清楚:)
    • 你应该可以使用这个 xpath:*[1][self::a:r]
    • 我需要对此提出建议http://stackoverflow.com/questions/16938112/text-extraction-using-python-lxml-looping-issue ...谢谢
    猜你喜欢
    • 2021-04-07
    • 2018-04-24
    • 1970-01-01
    • 2011-06-20
    • 2010-10-22
    • 2010-12-08
    • 1970-01-01
    • 2013-03-14
    • 2018-11-07
    相关资源
    最近更新 更多