首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何手动删除XML标记?

如何手动删除XML标记?
EN

Stack Overflow用户
提问于 2016-12-10 00:18:29
回答 1查看 194关注 0票数 0

我正在尝试删除标记并创建一个新的文件,但我不知道如何完成这一任务。我给出了一个带有XML标记的文件,我希望使用剥离和拆分来生成list/string。我不能使用XML解析器或任何其他库。

以下是文本文件:

代码语言:javascript
复制
<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名队员。扎伊尔安德森,劳工局,穿50号。他身高5英尺11英寸,体重220磅。他24岁了。他去了内布拉斯加。,OLB,穿48号。他身高6英尺2英寸,体重250磅。他23岁了。他去了科罗拉多州立大学。卡普里·比布斯,RB,穿着48号。他身高5英尺11英寸,体重203磅。他23岁了。他去了科罗拉多州立大学。

代码语言:javascript
复制
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>的代码。我只是不知道怎么接近它。在那之后,我想把这句话写进我贴的句子里。

EN

回答 1

Stack Overflow用户

发布于 2016-12-10 00:35:06

若要删除标记,请使用变量skip=True/False控制何时将char复制到新字符串。

当你找到<,然后设置skip=True,当你找到>,然后设置skip=False

代码语言:javascript
复制
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)

如果您需要标记中的数据,那么您必须构建解析器--识别打开和结束标记,记住标记名称,并可能使用标记构建树。所以你需要更多的工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41070820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档