首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误: lxml.etree.XMLSyntaxError:预期Error= '>‘>

错误: lxml.etree.XMLSyntaxError:预期Error= '>‘>
EN

Stack Overflow用户
提问于 2016-04-16 18:46:28
回答 1查看 5.4K关注 0票数 0

我把这个XML数据放在一个字符串中:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<class name="C" kind ="concrete">
    <inheritance>
        <from name="A" privacy="public" />
        <from name="B" privacy="public" />
    </inheritance>
    <private>
        <methods>
            <method name="C" type="C" scope="instance">
                <arguments></arguments>
        </methods>
    </private>
</class>

我想找到一些使用xpath的元素。到目前为止,这是我的代码:

代码语言:javascript
复制
utf8_parser = etree.XMLParser(encoding='utf-8')
root = etree.fromstring(string.encode('utf-8'), parser=utf8_parser)
somelist = root.findall(xpathString)

我发现了一个错误:

代码语言:javascript
复制
root = etree.fromstring(stringOutput.string.encode('utf-8'), parser=utf8_parser)
  File "lxml.etree.pyx", line 3032, in lxml.etree.fromstring (src/lxml/lxml.etree.c:68106)
  File "parser.pxi", line 1785, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:102455)
  File "parser.pxi", line 1673, in lxml.etree._parseDoc (src/lxml/lxml.etree.c:101284)
  File "parser.pxi", line 1074, in lxml.etree._BaseParser._parseDoc (src/lxml/lxml.etree.c:96466)
  File "parser.pxi", line 582, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:91275)
  File "parser.pxi", line 683, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:92461)
  File "parser.pxi", line 622, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:91757)
lxml.etree.XMLSyntaxError: expected '>', line 11, column 11

我想问题可能是字符串中的双引号。有可能吗?使用xpath查找元素的适当代码应该是什么样的呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-16 18:57:19

分隔属性值的双引号是完全正确的,但是缺少结束标记的method元素不是。下面是为格式良好而修复的XML:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<class name="C" kind ="concrete">
    <inheritance>
        <from name="A" privacy="public" />
        <from name="B" privacy="public" />
    </inheritance>
    <private>
        <methods>
            <method name="C" type="C" scope="instance">
                <arguments></arguments>
            </method>
        </methods>
    </private>
</class>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36668243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档