如何在标签中包含标签外的文本。Python

2024-09-24 06:26:11 发布

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

我在使用soap和Python解析XML时遇到了一个问题

例如,下面提供了部分XML内容:

xml = '''<line b="498" baseline="488" l="520" r="1248" t="456">
     <formatting lang="EnglishUnitedStates">
       $
      <price appendorder="10" class="extraction-tag" confidence="1/1" data-original-title="Price" data-toggle="tooltip" data-value="25.00" style="background-color: rgb(192, 185, 178);" tagorder="10">
       25.00
      </price>
      .
     </formatting>
    </line>'''

soup = BeautifulSoup(xml, "lxml-xml")
tag = soup.price
tag['data-value'] = "$25.00"
tag.string = "$25.00"
outside_tag_str = str(tag.find_parent())
new_outside_tag_str = outside_tag_str.replace("$<", "<")
print(new_outside_tag_str)


#prints: <formatting lang="EnglishUnitedStates">
      $
      <price appendorder="10" class="extraction-tag" confidence="1/1" data-original-title="Price" data-toggle="tooltip" data-value="$25.00" style="background-color: rgb(192, 185, 178);" tagorder="10">$25.00</price>
      .
     </formatting>

如您所见,我想在标记中包含美元符号,但我的代码在标记内外返回美元符号。我做错了什么?我想被归还:

<formatting lang="EnglishUnitedStates">
  <price appendorder="10" class="extraction-tag" confidence="1/1" data-original-title="Price" data-toggle="tooltip" data-value="$25.00" style="background-color: rgb(192, 185, 178);" tagorder="10">$25.00</price>
  .
 </formatting>

任何帮助都将不胜感激,谢谢


Tags: langdatavaluetagxmlpriceclassformatting
1条回答
网友
1楼 · 发布于 2024-09-24 06:26:11

替换此

new_outside_tag_str = outside_tag_str.replace("$<", "<")

用这个:

new_outside_tag_str = outside_tag_str.replace(" $", "")

为什么?

因为您需要将$(空格后跟美元符号)完全替换为空字符串,所以之前您的目标是无效字符串

因此:

xml = '''<line b="498" baseline="488" l="520" r="1248" t="456">
     <formatting lang="EnglishUnitedStates">
       $
      <price appendorder="10" class="extraction-tag" confidence="1/1" data-original-title="Price" data-toggle="tooltip" data-value="25.00" style="background-color: rgb(192, 185, 178);" tagorder="10">
       25.00
      </price>
      .
     </formatting>
    </line>'''

soup = BeautifulSoup(xml, "lxml-xml")
tag = soup.price
tag['data-value'] = "$25.00"
tag.string = "$25.00"
outside_tag_str = str(tag.find_parent())
new_outside_tag_str = outside_tag_str.replace(" $", "")
print(new_outside_tag_str)

输出

<formatting lang="EnglishUnitedStates">

      <price appendorder="10" class="extraction-tag" confidence="1/1" data-original-title="Price" data-toggle="tooltip" data-value="$25.00" style="background-color: rgb(192, 185, 178);" tagorder="10">$25.00</price>
      .
     </formatting>

相关问题 更多 >