我正在尝试删除标签并创建一个新文件,但我看不到如何完成此操作。我正在提供一个具有XML标签的文件,我想使用strip并拆分将其制成列表/字符串。我不能使用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个 团队中的球员。Zaire Anderson,ILB,穿着#50。他是5英尺11 高英寸,重220磅。他是24岁 年龄。他去了内布拉斯加州。Shaquil Barrett,OLB,穿着#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>
该代码。我只是不知道该如何处理。之后,我想将其放入我发布的句子中。
要删除标签使用变量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)
如果您需要来自标签的数据,则必须构建解析器 - 识别打开和关闭标签,记住标签名称,并可能使用标签构建树。因此,您需要更多的工作。