繁体   English   中英

如何使用Python中的BeautifulSoup获取XML文件中所有具有相同名称的标签?

[英]How to get all the tags with same name inside an XML file using BeautifulSoup in Python?

我使用的XML是这种格式-

<head>
  <body>
  Sample Text1
  </body>
  <body>
  Sample Text2
  </body>
</head>

我正在尝试将所有带有标记<body>标记放入单个变量final_value 为此,我正在使用下面的代码-

soup = Soup(target_xml, 'html.parser') 
for value in soup.find_all("body"):
    final_value = value.prettify()

使用此方法,我在final_value变量中仅获得一个<body>标记。 如何获取变量中的两个标记,以便输出如下所示-

>> final_value
      <body>
      Sample Text1
      </body>
      <body>
      Sample Text2
      </body>

这应该有所帮助。

演示:

from bs4 import BeautifulSoup


target_xml = """<head>
  <body>
  Sample Text1
  </body>
  <body>
  Sample Text2
  </body>
</head>"""

final_value = ""
soup = BeautifulSoup(target_xml, 'html.parser') 
for value in soup.find_all("body"):
    final_value += value.prettify()

print(final_value)

输出:

<body>
 Sample Text1
</body>
<body>
 Sample Text2
</body>

这些行实际上就是用第二个value覆盖第一个value

for value in soup.find_all("body"):
    final_value = value.prettify()

而是尝试这样的事情:

for value in soup.find_all("body"):
        final_value += value.prettify()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM