我有一些大致标准化的sgml文件。但是,在我打开文件并亲自读取它之前,可能会在标记中包含我不知道的数据。例如,这些文件具有地址,通常地址具有街道,城市,州,邮编和电话。地址的每个元素都表示一个标签使用lxml提取所有元素不提前知道的数据
<ADDRESS>
<STREET>One Main Street
<CITY>Gotham City
<ZIP>99999
<PHONE>555-123-5467
</ADDRESS>
但是,例如,我发现有对国家,STREET1,STREET2标签。我有超过200K的文件需要处理,我想知道是否可以抽出地址的所有元素,而不必担心未知标签的存在。
我迄今所做的是
h=fromstring(my_data_in_a_string)
for each in h.cssselect('mail_address'):
each.text_content()
但我得到的是有问题的,因为我不能确定其中一个元素结束和下一个开始
One Main StreetGotham City99999-123-5467
所以,你要得到所有存在于文件中的标签? – user225312 2010-11-17 04:57:30
是的,没有。首先获取文件中的所有标签会很好,但我也希望获得所有标签,如文件 – PyNEwbie 2010-11-17 05:03:01
的ADDRESS部分我很困惑 - 您的输入是SGML,但您接受了涉及解析XML的答案 - 拥有您是否找到了一种将您的SGML首先转换为XML的方法?如果是这样,我可以使用你的技术! :) – 2012-04-15 00:14:29