0

次のような xml タグがあるとします。

<tag>
    ... abunch of stuff inside here
</tag>

タグ自体を含め、 内のすべてを削除するにはどうすればよいですか?

試してみましたが、うまくいきre.sub('<tag>.+</tag>', '', string)ませんでした。ここで何が間違っていますか?

4

3 に答える 3

5

XML を正規表現で解析することはできません。それは不可能です。多くの人が、動作しているように見える正規表現を作成しましたが、予期しない何かに直面するとすぐに壊れます。これを行うには、XML パーサーを使用する必要があります。

于 2013-02-08T23:41:54.837 に答える
0

あなたはそれを安全に行うことができますか?これはlxmlあなたの願望に反しますが、使用することは危険に満ちてreいるという他の人のコメントによってあなたは説得されたかもしれません。re

import lxml.etree as etree

xml = """<root>
<item name="1"/>
<item name="2"/>
<tag>
    <nested>Will I die</nested>
    ... abunch of stuff inside here
</tag>
<another/>
</root>"""

root = etree.fromstring(xml)
for to_kill in root.xpath("//tag"):
    to_kill.getparent().remove(to_kill)

print etree.tostring(root,  pretty_print=True)

与える:

<root>
<item name="1"/>
<item name="2"/>
<another/>
</root>
于 2013-02-09T00:02:03.563 に答える
-2

私は実際に以前にxmlを扱っていましたが、それはずっと前のことです。私はsvgsを使用していて、svgsの編集を扱っていました。タグ内のものを削除したい場合は、javascript または jquery で答えを探す必要があると思います。

于 2013-02-09T00:26:22.717 に答える