J'ai un problème lorsque j'essaie de convertir un fichier XML dans un fichier PDF, ici je vais expliquer brièvement comment j'essaie de générer un fichier PDF.Convertir xml en pdf en Python
Nous supposons que je reçois les informations à partir d'une base de données, la source de code est le suivant:
import pyodbc,time,os,shutil,types
import cStringIO
import ho.pisa as pisa
import urllib
def HTML2PDF(data, filename, open=False):
"""
Simple test showing how to create a PDF file from
PML Source String. Also shows errors and tries to start
the resulting PDF
"""
pdf = pisa.CreatePDF(
cStringIO.StringIO(data),
file(filename, "wb"))
if open and (not pdf.err):
os.startfile(str(filename))
return not pdf.err
fout = open(BE_Full.xml","w")
fout.write("<?xml-stylesheet type='text/xsl' href='styles/Full_Report.xslt' alternate='no' title='Short' ?>")
fout.write("<files>")
fout.write("<validationreport>")
fout.write("xmlvalidations/" + row.country + "_validation_" + row.dbversion + ".xml")
fout.write("</validationreport>")
fout.write("<reportformat>reports/EN_Report.xml</reportformat>")
fout.write("</files>")
fout.write
fout.close()
f = urllib.urlopen("file:///C:/Documents%20and%20Settings/dmarban/Escritorio/python/BE_Full.xml")
s = f.read()
f.close()
HTML2PDF(s, "test.pdf", open=True)
Le premier que je produis est un fichier XML qui a le contenu suivant:
<?xml-stylesheet type='text/xsl' href='styles/Full_Report.xslt' alternate='no' title='Short' ?>
<files>
<validationreport>xmlvalidations/BE_validation_mid2010.xml</validationreport>
<reportformat>reports/EN_Report.xml</reportformat>
</files>
Quand j'exécute ce code:
urllib.urlopen("file:///C:/Documents%20and%20Settings/dmarban/Escritorio/python/BE_Full.xml")
s = f.read()
f.close()
HTML2PDF(s, " BE_Full.pdf ", open=True)
Il me génère le fichier suivant "BE_Full.pdf", mais au lieu d'afficher le contenu du dossier « xmlvalidations/BE_validation_mid2010.xml » me montrer le contenu des étiquettes qu'ils sont en format pdf, il montrerait le code suivant:
xmlvalidations/BE_validation_mid2010.xml reports/EN_Report.xml
Ma question est, comment je peux parser un fichier XML en python, je l'ai lu comme un fichier HTML?
pourquoi faites-vous 'urlopen' sur un fichier local? – SilentGhost
Parce que je veux obtenir le contenu XML, donc je cherchais sur Internet, j'ai vu un site Web qui utilise cette bibliothèque. Tout commentaire sera le bienvenu. Merci à l'avance Nice, ce qui a trait David – user490186
'urlopen' est seulement pour tirer des documents sur le web. Votre fichier XML n'est pas sur le Web. Par conséquent, vous l'ouvrez comme un fichier normal, en utilisant 'open ('myxmlfile.xml', 'r')'. –