2012-12-13 20 views
0

파이썬 스크립트를 통해 트윗 목록을 가져 오는 웹 응용 프로그램에서 작업하고 있습니다. em 대시가 포함 된 트윗을 가져 오면 XML 파일을 구문 분석 할 수 없습니다.em 대시로 XML 구문 분석 오류가 발생했습니다.

내 스크립트입니다 :

XML Parsing Error: no element found 
Location: http://localhost/cgi-bin/GetTweets2.py 
Line Number 2, Column 1: 

나는이에 대한 해결책 기분은 아마 매우 간단하다 : 나는 브라우저에서 파이썬 스크립트가로드 할 때

#! /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 

오류가 있습니다. 나는 xml에 대해 다양한 인코딩 유형을 사용하려했지만 성공하지는 못했다. 사용해야하는 특정 인코딩 유형이 있습니까? 아니면 내가 누락 된 특수 문자를 필터링하는 간단한 방법이 있습니까?

+0

bdesham이 말하길 원한다면 파이썬 구조체를 작성합니다 : dict 객체의 목록이지만 XML 대신 JSON으로 직렬화합니다. . dict 객체의 목록은 이미 JSON에 대한 방법의 99 %에 불과합니다. –

답변

0

XML을 생성하려는 경우 올바르게 작성하는 것이 좋습니다. 직렬화하려는 데이터를 보유하는 데이터 구조를 만들고 내장 파이썬을 사용하여 XML로 변환하는 것이 좋습니다. 기능. 이 방법은 인코딩 오류와 이상한 입력에 대해 걱정할 필요가 없다는 장점이 있습니다. (트윗에 텍스트 </Text>이 포함되어 있다면 현재 스크립트에서 어떤 일이 일어날 지 생각해보십시오.)

+0

scumbag answer. "올바른 방법"이 무엇인지에 대한 정보를 제공 할 수 있습니다. – coleifer

+0

"직렬화 할 데이터를 보유하는 데이터 구조를 만들고 내장 된 파이썬 기능을 사용하여 XML로 변환하십시오." – bdesham

관련 문제