QExtremely业余程序员,寻求你的帮助。
我必须经常编辑看起来像这样的
的xml文件 --- blah blah blah plenty xml stuff above ---
<lex marker="mala" sentiment="negative"/>
<lex marker="malas" sentiment="negative"/>
<lex marker="maleducad\p{Ll}*" sentiment="negative" regex="true"/>
<lex marker="mali\p{Ll}+sima\p{Ll}*" sentiment="negative" regex="true"/>
<lex marker="mali\p{Ll}+simo\p{Ll}*" sentiment="negative" regex="true"/>
--- blah blah blah plenty xml stuff below ---
使用相当复杂的正则表达式搜索和替换过程,我只能提取标记属性的值。 (这就是我所关心的)。
但这很耗时,在Python中必须有一种非常简单的方法来查找属性marker =“SOME_TEXT”部分并将所有值放入数组中,然后打印出该数组(到文件中)。但我无法弄明白:(
我正在寻找一种不包括导入任何类型的XML库的方法,因为我希望尽可能保持简单(和逻辑),以便我的业余编程思想学习)并且我只对它感兴趣无论如何,在该特定属性的数据中,我不关心文件的其余部分(或者它的XML-ness)。
我只在python中问过,因为我认为这是一种我渴望进入的语言。但是如果你能想到一个Linux终端的方式(sed,awk e.t.c.)我也很乐意走这条路。
答案 0 :(得分:4)
将XML与正则表达式匹配变得太复杂,太快。你真的是should not do that。
使用XML解析器,Python有几个可供选择:
ElementTree示例:
from xml.etree import ElementTree
tree = ElementTree.parse('filename.xml')
for elem in tree.findall('lex'):
print elem.attrib['marker']