【问题标题】:Parsing dtd file with lxml library (python)使用 lxml 库解析 dtd 文件(python)
【发布时间】:2013-09-26 15:17:32
【问题描述】:

我需要你的帮助。 我使用 lxml 库来解析 dtd 文件。

在这个例子中如何获得 c 子表达式?

dtd = etree.DTD(StringIO('<!ELEMENT a (b,c,d)>'))

我试试这个

content = dtd.elements()[0].content

left, right = content.left, content.right

但它在右子表达式的左边。

http://lxml.de/validation.html#id1

【问题讨论】:

    标签: python lxml dtd dtd-parsing xml


    【解决方案1】:

    我完全在猜测(我以前从未接触过这个)但是:

    from io import StringIO
    from lxml import etree
    
    dtd.elements()[0].content.right.left
    #>>> <lxml.etree._DTDElementContentDecl object name='c' type='element' occur='once' at 0x7f6999a28250>
    

    ?

    【讨论】:

    • 谢谢,真的有效。我还有一个问题:如何计算元素的数量?
    • content 变量作为树循环,计算遇到的端点数。
    • 我在问计算子表达式的数量。 (b,c,d) -> 3
    • 我知道。你会尝试使用我的建议吗?
    猜你喜欢
    • 2011-07-26
    • 2018-07-24
    • 1970-01-01
    • 2014-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多