XMLSyntaxError 应为开始标记,未找到“<”
XMLSyntaxError Start tag expected, '<' not found
在 Django 中,我构建了一个脚本来创建 xml 对象来发出 xml 请求。这是我的代码:
my_xml = etree.XML('''\"<?xml version="1.0"? encoding="UTF-8"?> <!DOCTYPE peticion SYSTEM "http://example.com"> ]><request></request>"''')
my_xml_doc = etree.ElementTree(my_xml)
my_tipe = etree.SubElement(my_xml, "element")
my_tipe.text = 'Element'
my_xml_serialize = etree.parse(my_xml)
my_request = urllib2.Request(url, my_xml_serialize)
但是 django 抛出一个错误
XMLSyntaxError Start tag expected, '<' not found, line 1, column 1
感谢您的回答!
Python is doing string concatenation behind the scenes。观察:
> "x"'f'=='xf'
True
所以你的字符串:
'''\"<?xml version="1.0"? encoding="UTF-8"?> <!DOCTYPE peticion SYSTEM "http://example.com"> ]><request></request>"'''
实际计算为:
''+'\"<?xml version="1.0"? encoding="UTF-8"?> <!DOCTYPE peticion SYSTEM "http://example.com"> ]><request></request>"'+''
即:
'\"<?xml version="1.0"? encoding="UTF-8"?> <!DOCTYPE peticion SYSTEM "http://example.com"> ]><request></request>"'
该字符串的开头是文字双引号 ("
)。这在尖括号外的 XML 中无效。因此错误。
将其更改为以下内容,应该可以正常工作:
'<?xml version="1.0"? encoding="UTF-8"?> <!DOCTYPE peticion SYSTEM "http://example.com"> ]><request></request>'
编辑:Fine 是夸大其词,原来的问题是字符串连接。然而,经过简短而慷慨的检查后,您的实际 XML 文档中存在许多问题,包括语法错误、错误指定的 DOCTYPE 以及实际上不符合该 DOCTYPE 的文档。
将文档一直修剪到:
'<?xml version="1.0" encoding="UTF-8"?><request></request>'
将允许代码 运行,但任何有关使 DOCTYPE 工作的帮助肯定是另一个问题。
在 Django 中,我构建了一个脚本来创建 xml 对象来发出 xml 请求。这是我的代码:
my_xml = etree.XML('''\"<?xml version="1.0"? encoding="UTF-8"?> <!DOCTYPE peticion SYSTEM "http://example.com"> ]><request></request>"''')
my_xml_doc = etree.ElementTree(my_xml)
my_tipe = etree.SubElement(my_xml, "element")
my_tipe.text = 'Element'
my_xml_serialize = etree.parse(my_xml)
my_request = urllib2.Request(url, my_xml_serialize)
但是 django 抛出一个错误
XMLSyntaxError Start tag expected, '<' not found, line 1, column 1
感谢您的回答!
Python is doing string concatenation behind the scenes。观察:
> "x"'f'=='xf'
True
所以你的字符串:
'''\"<?xml version="1.0"? encoding="UTF-8"?> <!DOCTYPE peticion SYSTEM "http://example.com"> ]><request></request>"'''
实际计算为:
''+'\"<?xml version="1.0"? encoding="UTF-8"?> <!DOCTYPE peticion SYSTEM "http://example.com"> ]><request></request>"'+''
即:
'\"<?xml version="1.0"? encoding="UTF-8"?> <!DOCTYPE peticion SYSTEM "http://example.com"> ]><request></request>"'
该字符串的开头是文字双引号 ("
)。这在尖括号外的 XML 中无效。因此错误。
将其更改为以下内容,应该可以正常工作:
'<?xml version="1.0"? encoding="UTF-8"?> <!DOCTYPE peticion SYSTEM "http://example.com"> ]><request></request>'
编辑:Fine 是夸大其词,原来的问题是字符串连接。然而,经过简短而慷慨的检查后,您的实际 XML 文档中存在许多问题,包括语法错误、错误指定的 DOCTYPE 以及实际上不符合该 DOCTYPE 的文档。
将文档一直修剪到:
'<?xml version="1.0" encoding="UTF-8"?><request></request>'
将允许代码 运行,但任何有关使 DOCTYPE 工作的帮助肯定是另一个问题。