我正在开发一个Web应用程序,它通过python脚本提取推文列表。当我提交包含em破折号的推文时,我无法解析XML文件。
我的脚本是:
#! /usr/bin/python
import cgi
from peewee import *
from sql_connect import *
import sql_connect
import sys
xmlString = ""
# Create XML string
xmlString += "<TweetList>"
tweets = Tweet_Info.select()
for tweet in tweets:
xmlString += "<Tweet>"
xmlString += "<UserName>"
xmlString += tweet.user
xmlString += "</UserName>"
xmlString += "<UserImage>"
xmlString += tweet.user_image_url
xmlString += "</UserImage>"
xmlString += "<Text>"
xmlString += tweet.text
xmlString += "</Text>"
xmlString += "</Tweet>"
xmlString += "</TweetList>"
# Print beginning xml stuff
print "Content-Type: text/xml"
print
print '<?xml version="1.0" encoding="UTF-8"?>'
print xmlString
我在浏览器中加载python脚本时出现的错误是:
XML Parsing Error: no element found
Location: http://localhost/cgi-bin/GetTweets2.py
Line Number 2, Column 1:
我觉得解决这个问题可能相当简单。我尝试过为xml使用各种不同的编码类型,但没有成功。我应该使用特定的编码类型吗?或者有一种简单的方法来过滤掉我遗漏的特殊角色吗?
答案 0 :(得分:0)
如果您要生成XML,那么以正确的方式执行它是一个更好的主意:创建一个包含您要序列化的数据的数据结构,并使用内置的Python功能将其转换为XML 。这种方法的优点还在于您不必担心编码错误和奇怪的输入。 (如果推文包含文本</Text>
,请考虑当前脚本会发生什么。)