lxml XMLSyntaxError:未找到命名空间默认前缀

2024-03-17

我正在使用 lxml 来读取我的 xml 文件。我正在使用如下代码。它在 lxml2.3 beta1 上工作得很好,但在 lxml2.3 上它给了我 zn xml 语法错误,如下所示。我浏览了两个版本的发行说明,但无法弄清楚是什么导致了此错误或如何修复它。如果您遇到过这样的事情或有任何线索,请提供帮助。

Thanks!!

Code:

from lxml import etree 
def parseXml(context,attribList,elemList):     
   for event, element in context:
       if element.tag in elemList:         
         #read element attributes 
   element.clear()

def main(object):
    ns='{NS}'
    attribList=['name','age','id'] 
    elemList=[ns+'Employee',ns+'Experience',ns+'Employment',ns+'Project',ns+'Award']
    context=etree.iterparse(fullFilePath, events=("start","end")) 
    parseXml(context,attribList,elemList)

Error:

文件“iterparse.pxi”,第 478 行,位于 lxml.etree.iterparse。next(src/lxml/lxml.etree.c:95348) 文件 “iterparse.pxi”,第 530 行,位于 lxml.etree.iterparse._read_more_events (src/lxml/lxml.etree.c:95886) 文件 “parser.pxi”,第 585 行,位于 lxml.etree._raiseParseError (src/lxml/lxml.etree.c:71955) XMLSyntaxError:命名空间默认值 未找到前缀,第 545 行,列 73

xml 示例 -

<root xmlns='NS'>
 <Employee Name="Mr.ZZ" Age="30">
  <Experience TotalYears="10" StartDate="2000-01-01" EndDate="2010-12-12">
   <Employment id = "1" EndTime="ABC" StartDate="2000-01-01" EndDate="2002-12-12">
     <Project Name="ABC_1" Team="4">
     </Project>
   </Employment>
   <Employment id = "2" EndTime="XYZ" StartDate="2003-01-01" EndDate="2010-12-12">
    <PromotionStatus>Manager</PromotionStatus>
    <Project Name="XYZ_1" Team="7">
     <Award>Star Team Member</Award>
    </Project>
   </Employment>
  </Experience>
 </Employee>
</root> 

“Employee”在根中重复。错误发生在解析器正确地遍历了许多员工之后。

Edit 1:在捕获异常时,我捕获以下内容:

WARNING:NAMESPACE:NS_ERR_UNDEFINED_NAMESPACE: Namespace default prefix was not found

好吧,我终于明白发生了什么事。按照清理使用过的元素的好建议,我清理了所有元素,包括根节点。根节点是具有默认命名空间前缀的节点,该前缀适用于该根内的所有节点。由于我清除了根节点,默认名称空间前缀不再是其子元素 nsmap 的一部分。以前的版本似乎对此很宽容,但最新版本在这个意义上更加严格。

在我读完 xml 之前不清除根元素对我来说是成功的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

lxml XMLSyntaxError:未找到命名空间默认前缀 的相关文章

  • 将 yerr/xerr 绘制为阴影区域而不是误差线

    在 matplotlib 中 如何将误差绘制为阴影区域而不是误差条 例如 而不是 忽略示例图中各点之间的平滑插值 这需要进行一些手动插值 或者只是获得更高分辨率的数据 您可以使用pyplot fill between https matpl
  • 如何使用 python 的 http.client 准确读取一个响应块?

    Using http client在 Python 3 3 或任何其他内置 python HTTP 客户端库 中 如何一次读取一个分块 HTTP 响应一个 HTTP 块 我正在扩展现有的测试装置 使用 python 编写 http clie
  • Python re无限执行

    我正在尝试执行这段代码 import re pattern r w w s re compiled re compile pattern results re compiled search COPRO HORIZON 2000 HOR p
  • 数据框 - 平均列

    我在 pandas 中有以下数据框 Column 1 Column 2 Column3 Column 4 2 2 2 4 1 2 2 3 我正在创建一个数据框 其中包含第 1 列和第 2 列 第 3 列和第 4 列等的平均值 ColumnA
  • 将 C++ 指针作为参数传递给 Cython 函数

    cdef extern from Foo h cdef cppclass Bar pass cdef class PyClass cdef Bar bar def cinit self Bar b bar b 这总是会给我类似的东西 Can
  • 以类型化内存视图作为成员的结构定义

    目前我正在尝试让一个具有类型化内存视图的结构能够工作 例如 ctypedef struct node unsigned int inds 如果 inds 不是内存视图 据我所知 它可以完美地工作 然而 通过内存视图并使用类似的东西 def
  • python celery -A 的无效值无法加载应用程序

    我有一个以下项目目录 azima init py main py tasks py task py from main import app app task def add x y return x y app task def mul
  • 如何在 Python 中的函数入口、内部和退出处进行日志记录

    我希望能够使用 Python 日志记录工具在我的代码中进行简单且一致的日志记录 我能够执行以下操作 我希望所有现有 未来的模块和函数都有 输入 和 完成 日志消息 我不想添加相同的代码片段来定义日志记录参数 如下所示don t want t
  • 在Python中读取tiff标签

    我正在尝试用 Python 读取 tiff 文件的标签 该文件是 RGB 的uint16每个通道的值 我目前正在使用tifffile import tifffile img tifffile imread file tif 然而 img是一
  • 在 Mac OS X 上安装 libxml2 时出现问题

    我正在尝试在我的 Mac 操作系统 10 6 4 上安装 libxml2 我实际上正在尝试在 Python 中运行 Scrapy 脚本 这需要我安装 Twisted Zope 现在还需要安装 libxml2 我已经下载了最新版本 2 7 7
  • Jupyter 笔记本中未显示绘图图表

    我已经尝试解决这个问题几个小时了 我按照上面的步骤操作情节网站 https plot ly python getting started start plotting online并且图表仍然没有显示在笔记本中 这是我的情节代码 color
  • App Engine 实体到字典

    将 google app engine 实体 在 python 中 复制到字典对象的好方法是什么 我正在使用 db Expando 对象 所有属性均为扩展属性 Thanks 有一个名为foo尝试 foo dict
  • Flask 应用程序路由中的多个参数

    烧瓶怎么写app route如果我在 URL 调用中有多个参数 这是我从 AJax 调用的 URL http 0 0 0 0 8888 createcm summary VVV change Feauure 我试图写我的烧瓶app rout
  • 基于值而不是类型的单次调度

    我在 Django 上构建 SPA 并且有一个庞大的功能 其中包含许多功能if用于检查我的对象字段的状态名称的语句 像这样 if self state new do some logic if self state archive do s
  • 确定分割形状几何体的“左”侧和“右”侧

    我的问题是 我怎样才能确定哪一个Aside and Bside的侧面已经分割的旋转矩形几何体 http nbviewer jupyter org urls dl dropbox com s ll3mchnx0jwzjnf determine
  • 如何通过函数注释指示函数需要函数作为参数,或返回函数?

    您可以使用函数注释 http www python org dev peps pep 3107 在python 3中指示参数和返回值的类型 如下所示 def myfunction name str age int gt str return
  • 仅允许正小数

    在我的 Django 模型中 我创建了一个如下所示的小数字段 price models DecimalField u Price decimal places 2 max digits 12 显然 价格为负或零是没有意义的 有没有办法将小数
  • django jet 中的自定义徽标

    我目前正在尝试对 django 管理面板的皮肤进行一些定制 以使其更符合我们的品牌 目前我们使用 django jet 来美化管理面板 django jet 可以自定义 css html 吗 所有评论都说我应该更改一些 html 文件 但我
  • 如何绘制更大的边界框和仅裁剪边界框文本 Python Opencv

    我正在使用 easyocr 来检测图像中的文本 该方法给出输出边界框 输入图像如下所示 Image 1 Image 2 使用下面的代码获得输出图像 But I want to draw a Single Bigger bounding bo
  • 描述符“join”需要“unicode”对象,但收到“str”

    代码改编自here http wiki geany org howtos convert camelcase from foo bar to Foo Bar def lower case underscore to camel case s

随机推荐

  • 在 R 中生成 XML 文档

    在我正在工作的项目中 我需要自动创建一个XML文档取决于用户输入 使用用户输入来修改的部分xml文件对我来说没问题 但我是新创建的xml在 R 中从头开始文档 我想知道是否XML可以使用 R 在 R 中生成如下所示的文档XML or xml
  • JTextField/JTextComponent 中的选择有限?

    考虑一个 JFormattedTextField 或者任何 JTextComponent 实际上 其中在字段的实际 文本 周围显示有一个前缀和一个后缀 例如 双 3 5 将是字符串 通过格式化 3 50 其周围将是前缀 和后缀 用于显示文本
  • 如何使用 html 属性在 MVC 视图中显示文本

    我有以下代码 Html ActionLink Hello User Identity GetUserName Manage Account routeValues null htmlAttributes new title Manage 我
  • 交叉编译到嵌入式 Linux ARM 设备时,针对较旧版本的 libstdc++ 和最新的 GCC

    我们需要为ARM嵌入式linux目标找到一个满足以下条件的交叉编译工具链 内核3 17 GLBC 2 18 编译一些第三方代码需要最新版本的GCC 这些要求促使我使用 crosstool ng 生成自定义交叉编译工具链 我选择了最小内核版本
  • 如何在eclipse中获取平台插件的日志

    我是 eclipse 插件开发的新手 我想在我的插件中自定义一些 Eclipse 功能 所以我想知道 当我在 eclipse 中进行某些操作时 后台会发生什么 例如 文件 gt 新建 gt 项目 我需要调用哪个插件 类 函数的日志 跟踪 您
  • 如何在 IntelliJ 上的 Java12 中使用 JavaFX?

    当我在 jdk12 中创建 JavaFX 文件时 它显示以下错误 未配置 JavaFX 运行时 使用内置 JavaFX 的 JDK 或将 JavaFX 库添加到类路径 我该如何解决这个问题 从 JDK11 开始 JavaFX 已被删除 ht
  • Amazon SNS 移动推送 - 如何批量订阅某个主题的终端节点?

    我正在尝试将现有的 iOS 推送通知基础设施转移到亚马逊 SNS 移动推送 我将所有令牌从本地数据库导出到 SNS 应用程序 使用 CSV 现在我想向所有 10 000 个用户发送推送通知 我认为唯一的方法是创建一个主题并将所有用户订阅该主
  • 如何向帖子收到评论的用户发送通知?

    使用我当前的代码 发表评论的用户会收到一条通知 告诉他们他们发表了评论 发布受到评论的评估的人应该收到通知 通知他们有人对此发表了评论 标准通知内容 但我哪里出错了 评论 rb class Comment lt ActiveRecord B
  • QML 创建文本元素需要很长时间

    我注意到在 QML 中创建文本元素需要很长时间 举个例子 import QtQuick 2 5 import QtQuick Window 2 2 Window visible true width 320 height 640 color
  • 如何在Python中检测小写字母?

    我需要知道是否有一个函数可以检测字符串中的小写字母 假设我开始编写这个程序 s input Type a word 是否有一个函数可以让我检测字符串 s 中的小写字母 最终可能会将这些字母分配给不同的变量 或者只是打印小写字母或小写字母的数
  • Xcode 7 Null 传递给需要非空参数的被调用者

    我更新了 Xcode 7 并给出了这个错误 Null 传递给需要非空参数的被调用者 recorder AVAudioRecorder alloc initWithURL NSURL fileURLWithPath NSString stri
  • py4j - 我将如何在 java 中调用 python 方法

    我最近发现了 py4j 并且能够从 python 调用静态 java 方法 现在我想从java调用python方法 我找不到太多文档 所以这是我能想到的最后一个可以告诉我是否可能以及如何实现的地方 您可以通过以下方式从 Java 调用 Py
  • TypeScript 错误:在 Visual Studio 中“找不到名称”

    我已经看过很多关于此问题的帖子和讨论 但我无法解决这个问题 这是我前几天的帖子 https stackoverflow com questions 36037962 how to get rid of reference path 3604
  • 当``type =“module”``或导入时功能不起作用[重复]

    这个问题在这里已经有答案了 import testBtn from functions js window onload function document getElementById questions1 style display b
  • FILESYSTEM 与 SQLITE,同时存储最多 10M 文件

    我想存储最多10M的文件 2TB的存储单元 我需要的唯一属性仅限于文件名及其内容 数据 文件最大长度为100MB 大多数小于1MB 需要删除文件的能力 并且写入和读取速度都应该是优先考虑的 而不需要低存储效率 恢复或完整性方法 我考虑过 N
  • matplotlib:如何将 XYZ 散点图转换为像素图像?

    我正在寻找某种方法将散点图 X vs Y 由 Z 标准化的颜色 转换为 2D 像素 图像 IE 如何绘制像素化图像 其中像素根据第三个变量着色 就我而言 我有一个星系列表 每个星系都有天空坐标 X Y 和距离 Z 我想制作 X 与 Y 的像
  • 如何在 Android 代码上执行 Java 测试

    我想执行一个 Java 类来测试 Android 应用程序的部分功能 来自 Java 模块 以将数据读 写到文件 如果我在 Android 模块中执行 我会得到 Stub 错误 Android SDK 如果我安装或模拟 它会非常慢 我只测试
  • 在 linq 和 EF 中按月份排序

    我有一个 linq 查询 其中包含月份名称 我希望结果按月份 一月 二月 三月 排序 目前我有以下内容 但它给了我一个错误 LINQ to Entities 无法识别方法 System DateTime Parse System Strin
  • Windows Phone 7.5 - 应用程序被逻辑删除时推送通知

    我编写了一个 Windows 7 5 手机应用程序 用于使用 MPNS 注册磁贴和 Toast 推送通知 我的所有基础设施都正常运行 并且电话已在 MPNS 上注册 我将 ChannelUri 保存在手机本地 然后将 ChannelUri
  • lxml XMLSyntaxError:未找到命名空间默认前缀

    我正在使用 lxml 来读取我的 xml 文件 我正在使用如下代码 它在 lxml2 3 beta1 上工作得很好 但在 lxml2 3 上它给了我 zn xml 语法错误 如下所示 我浏览了两个版本的发行说明 但无法弄清楚是什么导致了此错