2

私は次のようなhtmlリストの要素を解析しようとしています:

<ol>
    <li>r1</li>
    <li>r2
        <ul>
            <li>n1</li>
            <li>n2</li>
        </ul>
    </li>
    <li>r3
        <ul>
            <li>d1
                <ol>
                    <li>e1</li>
                    <li>e2</li>
                </ol>
            </li>
            <li>d2</li>
        </ul>
    </li>
    <li>r4</li>
</ol>

ほとんどの場合、これを解析しても問題ありませんが、私にとって最大の問題は、domテキストを元に戻すことです。残念ながら、lxmlのnode.text_content()は、その下にある完全なツリーのテキスト形式を返します。lxmlを使用してその要素のテキストコンテンツだけを取得できますか、それとも文字列操作または正規表現を使用する必要がありますか?

たとえば、d1のノードは「d1e1e2」を返しますが、d1だけを返すようにします。

4

1 に答える 1

2

各ノードには、 と呼ばれる属性がありますtext。それがあなたが探しているものです。

例えば:

for node in root.iter("*"):
    print node.text
    # print node.tail # e.g.: <div> <span> abc </span> def </div> => abc def
于 2012-11-08T00:57:07.443 に答える