之間取代一切如果我有一個XML標籤,如:兩個標籤用正則表達式
<tag>
... abunch of stuff inside here
</tag>
我如何會刪除裏面的一切,包括標籤本身?我試過re.sub('<tag>.+</tag>', '', string)
,但它不起作用。我在這裏做錯了什麼?
之間取代一切如果我有一個XML標籤,如:兩個標籤用正則表達式
<tag>
... abunch of stuff inside here
</tag>
我如何會刪除裏面的一切,包括標籤本身?我試過re.sub('<tag>.+</tag>', '', string)
,但它不起作用。我在這裏做錯了什麼?
你可以安全地做到這一點嗎?與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>
其實我使用XML之前的工作,但它在很久以前。我正在使用SVG,我正在處理編輯SVG。如果你想刪除標籤內的東西,我相信你應該在javascript或jquery中尋找你的答案。
首先,你應該學習正則表達式解析html的本質[這裏](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags) – chuwy 2013-02-08 23:42:22