Python 如何从url解析xml

Python 如何从url解析xml,python,xml,xml-parsing,Python,Xml,Xml Parsing,通常,我要做的是从url解析xml。这就是我所做的: 我在html文件中编写xml代码,该文件附在标记上: 但我有一个错误: File "<string>", line unknown ParseError: XML or text declaration not at start of entity: line 2, column 0 及 但是,两种方法都会产生相同的错误: File "<string>", l

通常,我要做的是从url解析xml。这就是我所做的:

  • 我在html文件中编写xml代码,该文件附在标记上:

  • 但我有一个错误:

        File "<string>", line unknown ParseError: XML or text declaration not at start of entity: line 2, column 0
    

    但是,两种方法都会产生相同的错误:

        File "<string>", line unknown ParseError: XML or text declaration not at start of entity: line 2, column 0
    
    文件“”,第行未知语法错误:XML或文本声明不在实体的开头:第2行,第0列
    
  • 所以,我的问题是:
  • a。这个问题是由使用标签引起的吗

    b。如果是这样,我如何在网站上发布我的xml代码


    c。如果没有,如何解决此错误?

    这可能是因为您在文档开头缺少此原因 XML声明

    <?xml version="1.0"?>
    
    
    
    只能出现一次,并且只能出现在XML文档的最顶端

    显然

    <textarea rows="1000" cols="200" style="border:none;">
    
    
    
    在此之前,它违反了这一要求

    补救措施
    • 因为您只指定XML为1.0版,而且这是默认版本,所以只需删除XML声明,或者
    • 删除XML声明之前的所有内容
    另见

    您将返回HTML文档。
    HTML中有保存XML文档的

    下面的代码指向XML文档并对其进行解析

    import requests
    import xml.etree.ElementTree as ET
    
    r = requests.get('https://imanparyudi.000webhostapp.com/gambar.html')
    if r.status_code == 200:
        start = r.text.find('<?xml')
        end = r.text.find('</textarea>')
        root = ET.fromstring(r.text[start:end])
        print(root)
    
    导入请求
    将xml.etree.ElementTree作为ET导入
    r=请求。获取('https://imanparyudi.000webhostapp.com/gambar.html')
    如果r.status_code==200:
    
    start=r.text.find(“你为什么不使用
    lxml.etree
    中的
    parse
    ?不要混用API。
    lxml
    扩展了Python的ElementTree API,因此与
    etree
    共享了许多方法。另外,请不要将
    var\u url
    的输出作为屏幕截图发布。让我们看看你想要解析的确切对象。
    你好@balderman,它很有效。谢谢你非常感谢。但我有一个问题。这是什么:r.status_code==200?状态码是从http服务器返回的http状态码。200意味着OK。在我的例子中,我使用tag在html中发布xml代码。我的问题是:是否可以在不使用tag的情况下在html中发布xml代码?如果可以,我怎么做?只需上传将xml导出到网站,并将浏览器指向该网站
    
        File "<string>", line unknown ParseError: XML or text declaration not at start of entity: line 2, column 0
    
    <?xml version="1.0"?>
    
    <textarea rows="1000" cols="200" style="border:none;">
    
    import requests
    import xml.etree.ElementTree as ET
    
    r = requests.get('https://imanparyudi.000webhostapp.com/gambar.html')
    if r.status_code == 200:
        start = r.text.find('<?xml')
        end = r.text.find('</textarea>')
        root = ET.fromstring(r.text[start:end])
        print(root)