删除特定分隔符内的所有空格

2024-04-26 01:06:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试处理一个包含格式错误的元素的xml文件。你知道吗

错误形成的元素是不遵循以下模式的元素:<name attribute1=value1 attribute2=value2 ... attributeN=valueN>

可以有0到n个属性。你知道吗

因此,<my element number>无效,而<my element=number>无效。你知道吗

以下是我的文本示例:

<product_name>
    A high wind in Jamaica <The innocent voyage>  The modern library of the world s best books   Books  Richard Arthur Warren Hughes
</product_name>

在这里,<product_name>是一个好的元素,而<The innocent voyage>不是。你知道吗

当发现不正确的元素时,我希望用中性字符替换<>,例如+。你知道吗

因为包含这些标签的文件相当大(1.5gb),所以我不想使用暴力方法。你知道吗

你们能想出一个快速(如果可能的话,优雅)的方法来解决这个问题吗?你知道吗


Tags: 文件the方法name元素numbermy格式
1条回答
网友
1楼 · 发布于 2024-04-26 01:06:01

当您声明希望远离regex时,我能够创建以下不使用regex的代码(尽管我确信regex会非常有用)

def valid_tag(tag):
    temp = tag.split()
    for word in temp[1:]:
        if "=" not in word:
            return False
    return True

在这里,您将一个标记作为字符串作为参数传入。例如:"<hello test=test>"

您可以在每个标记上运行此测试,方法是创建另一个获取标记的方法,方法是找到一个"<",然后找到后面的第一个">",并从该子字符串创建一个子字符串,该子字符串将是您传递给此方法的标记。你知道吗

注意:这假设您的标记是按如下方式编写的:<hello test=test>而不是< hello test = test >

这个方法仍然非常原始,并作出一些假设,如我上面所说,但希望它会给你一个开始,你需要的。你知道吗

相关问题 更多 >