【问题标题】:How to check if a node exist before another node in an XML file using python如何使用python检查XML文件中一个节点是否存在于另一个节点之前
【发布时间】:2013-07-05 18:14:30
【问题描述】:

我想检查 XML 文件中的一个节点是否在 Python 3.2 中的另一个节点之前存在。我正在为 Python 使用 LXML 库。我想过使用计数器来跟踪订单,但我想不出逻辑。我需要在不更改 XML 文件的情况下执行此操作。

我的 XML 看起来像这样 Example 例如,我想检查 book id="bk108" 是否在 book id="bk112" 之前 除了书籍 ID 不适合我的 XML。例如:它不会去 bk108,bk109...

【问题讨论】:

    标签: python xml xpath python-3.x lxml


    【解决方案1】:

    这可以使用 XPath 完成

    not(empty(//book[@id="bk108"][following-sibling::book[@id="bk112"]]))
    

    如果有一个 ID 为 bk108book 节点确实有一个 ID 为 bk112

    的后续 book 节点,则此 XPath 将返回 true

    【讨论】:

    • 我想检查一下 bk108 是否在 bk112 之前,而不是相反。我知道如何找到元素
    • @Rohit 我的代码就是这样做的。它返回true iff bk108 在 bk112 之前。如果 bk108 有一个跟随节点 bk112,则 bk108 的位置低于 bk112。
    猜你喜欢
    • 2015-09-13
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多