Pythongenerated XML中出错

2024-10-02 02:38:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Python生成一些XML代码。这个代码统计一个词在语料库中出现的次数,并将该词与一个数字(概率分布)相匹配。在

下面是一个XML示例:

<?xml version="1.0" encoding="UTF-8" ?>
    <root>
        <Durapipe type="int">1</Durapipe>
        <EXPLAIN type="int">2</EXPLAIN>
        <woods type="int">2</woods>
        <hanging type="int">3</hanging>
        <hastily type="int">2</hastily>
        <key type="int" name="27p">1</key>
        <localized type="int">1</localized>
        <Schuster type="int">5</Schuster>
        <regularize type="int">1</regularize>
        ....
    </root>

下面是我用来生成这个的Python:

^{pr2}$

稍后我运行XStream将其转换为Java映射。很遗憾,由于出现单词“key”时,XML代码中出现错误,XStream无法转换它。我一辈子都找不到错误。XML错误如下所示:

[致命错误]频率.xml:1:27582:元素类型“key”后面必须跟属性规范“>;”或“/>gt;”。 线程“main”中出现异常com.thoughtworks.xstream网站.io.流异常:元素类型“key”后面必须跟属性规范“>;”或“/>gt;”。在

所以我有三个问题:这个错误是什么?如何修复XML?如何修改Python代码以生成正确的XML?在

很抱歉这个冗长的问题,但我对Python和XML都缺乏经验。如果您能提供任何帮助,我们将不胜感激。提前谢谢!在


Tags: key代码gttype错误rootxmllocalized
1条回答
网友
1楼 · 发布于 2024-10-02 02:38:48

nltk.corpus.reuters.words()返回一个列表,其中包含一些不能是有效XML元素名称的“单词”,例如,.'"。在

dicttoxml()afd字典中遇到这样一个键时,它将生成一个名为“key”的元素,并生成一个包含原始(无效)名称的属性name,例如

<key type="int" name=".'"">1</key>

显然,这是无效的XML,所有XML解析器都应该(正确地)抱怨它。xmllint确实如此,而且您还发现XStream也有。dicttoxml()没有将双引号(")等字符替换为&quot;。要解决这个问题,您可以在运行dicttoxml()之前调用键上的xml_escape()(参见下面的dict理解):

^{pr2}$

相关问题 更多 >

    热门问题