我尝试删除标记并创建新文件,但我无法看到如何完成此操作。我给出了一个带有XML标签的文件,我想使用strip和split来制作一个列表/字符串。我无法使用XML解析器或任何其他库。
这是文本文件:
<team> <name>Denver Broncos</name> <players> <player> <jno>50</jno> <fname>Zaire</fname> <lname>Anderson</lname> <height>5-11</height> <weight>220</weight> <age>24</age> <position>ILB</position> <school>Nebraska</school> </player> <player> <jno>48</jno> <fname>Shaquil</fname> <lname>Barrett</lname> <height>6-2</height> <weight>250</weight> <age>23</age> <position>OLB</position> <school>Colorado State</school> </player> <player> <jno>35</jno> <fname>Kapri</fname> <lname>Bibbs</lname> <height>5-11</height> <weight>203</weight> <age>23</age> <position>RB</position> <school>Colorado State</school> </player> </players> </team>
我想使用字符串/列表生成如下所示的句子:
以下是丹佛野马队的名单。有3个 团队中的球员。 ILB的扎伊尔安德森穿着#50。他身高5英尺11英寸 英寸高,重220磅。他今年24岁 岁。他去了内布拉斯加州。 OLB的Shaquil Barrett穿着#48。他6岁 脚高2英寸,重250磅。他23岁 岁。他去了科罗拉多州立大学。 RB,Kapri Bibbs穿#48。他5岁 脚高11英寸,重203磅。他23岁 岁。他去了科罗拉多州立大学。
def test(filename):
f=open(filename,"r")
line = f.readline()
f2 = open("BearsRoster.txt", "w")
print line
myList = []
stringl = ""
for i in line:
if i == ("<"):
while i != ">":
line.remove(i)
else:
stringl = stringl + i
myList.append(stringl)
stringl = ""
else:
stringl = stringl + i
print myList
for i in myList:
print i
print myList
if i[0] == "<" or " ":
myList.remove(i)
显然这段代码不正确。我的想法是通过字符串并尝试剥离<xxxxx>
该代码。我只是不知道如何处理它。在那之后,我想把它放到我发布的句子中。
答案 0 :(得分:0)
要删除标签,请使用变量skip=True/False
来控制何时将char复制到新字符串。
当您找到<
然后设置skip=True
时,当您找到>
时,请设置skip=False
data = '''<team> <name>Denver Broncos</name> <players> <player> <jno>50</jno> <fname>Zaire</fname> <lname>Anderson</lname> <height>5-11</height> <weight>220</weight> <age>24</age> <position>ILB</position> <school>Nebraska</school> </player> <player> <jno>48</jno> <fname>Shaquil</fname> <lname>Barrett</lname> <height>6-2</height> <weight>250</weight> <age>23</age> <position>OLB</position> <school>Colorado State</school> </player> <player> <jno>35</jno> <fname>Kapri</fname> <lname>Bibbs</lname> <height>5-11</height> <weight>203</weight> <age>23</age> <position>RB</position> <school>Colorado State</school> </player> </players> </team>'''
skip = False
result = ''
for char in data:
if char == '<':
skip = True
elif char == '>':
skip = False
elif not skip:
result += char
print(result)
如果您需要来自标签的数据,那么您将需要构建解析器 - 识别开始和结束标签,记住标签名称,并可能使用标签构建树。所以你需要做更多的工作。