"''') my_xml_doc = etree-6ren">
gpt4 book ai didi

XMLSyntaxError 需要开始标记,未找到 '<'

转载 作者:数据小太阳 更新时间:2023-10-29 02:06:09 25 4
gpt4 key购买 nike

在 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 起作用的任何帮助肯定是另一个问题。

关于XMLSyntaxError 需要开始标记,未找到 '<',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33070928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com