在Python中,可以使用以下方法以编程方式区分XML和HTML:
以下是一个示例代码:
import xml.etree.ElementTree as ET
def is_xml_or_html(data):
try:
root = ET.fromstring(data)
if root.tag.startswith('<') and root.tag.endswith('>'):
return "XML"
elif root.tag.startswith('</') and root.tag.endswith('>'):
return "HTML"
else:
return "Unknown"
except ET.ParseError:
return "Unknown"
# 示例用法
xml_data = "<root><tag>XML data</tag></root>"
html_data = "<html><body><h1>HTML data</h1></body></html>"
unknown_data = "<unknown></unknown>"
print(is_xml_or_html(xml_data)) # 输出:XML
print(is_xml_or_html(html_data)) # 输出:HTML
print(is_xml_or_html(unknown_data)) # 输出:Unknown
以下是使用BeautifulSoup库的示例代码:
from bs4 import BeautifulSoup
def is_xml_or_html(data):
try:
soup = BeautifulSoup(data, 'html.parser')
if soup.html:
return "HTML"
elif soup.xml:
return "XML"
else:
return "Unknown"
except:
return "Unknown"
# 示例用法
xml_data = "<root><tag>XML data</tag></root>"
html_data = "<html><body><h1>HTML data</h1></body></html>"
unknown_data = "<unknown></unknown>"
print(is_xml_or_html(xml_data)) # 输出:XML
print(is_xml_or_html(html_data)) # 输出:HTML
print(is_xml_or_html(unknown_data)) # 输出:Unknown
请注意,以上代码仅提供了一种基本的区分XML和HTML的方法,实际应用中可能需要根据具体需求进行适当的调整和扩展。
领取专属 10元无门槛券
手把手带您无忧上云