Python烧瓶无法打开xml文件

时间:2015-01-14 09:33:24

标签: python xml flask

我尝试在我的网站上实现服务器端多语言服务。这是文件夹上的结构:

data
--locale
static
--css
--images
--js
templates
--index.html
--page1.html
...
main.py

我使用Crowdin翻译网站,输出文件是XML格式。 locale文件夹包含每种语言的一个文件夹,每个页面都有一个xml文件。

我在Cookies上存储语言,这是我的python代码:

from flask import request
from xml.dom.minidom import parseString

def languages(page):
    langcode = request.cookies.get("Language")
    xml = "/data/locale/%s/%s.xml" % (langcode, page)

    dom = parseString(xml)
    ................
    .............

我在每个页面中调用,例如languages("index")

这是导出的xml文件的示例

<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<!--
This is a description of my page
-->
<resources>
  <string name="name1">value 1</string>
  <string name="name2">value 2</string>
  <string name="name3">value 3</string>
</resources>

但是,我有以下错误ExpatError: not well-formed (invalid token): line 1, column 0

我用Google搜索了一下。我最终遇到了其他stackoverflow问题,但大多数问题都是关于编码问题的,我在我的例子中找不到任何问题。

1 个答案:

答案 0 :(得分:1)

如果要解析文件,则必须使用parse()parseString()将解析一个字符串,即你的文件名。

from flask import request
from xml.dom.minidom import parse

def languages(page):
    langcode = request.cookies.get("Language")
    xml = "/data/locale/%s/%s.xml" % (langcode, page)

    dom = parse(xml)