lxml 标签名称带有“:”

2023-11-22

我正在尝试使用 lxml.etree 从 JSON 对象创建 xml 树。有些标记名中包含冒号,例如:-

“设置:当前”我尝试使用

'{settings}current' 作为标签名称,但我得到这个:-

ns0:当前 xmlns:ns0 =“设置”


是的,首先阅读并理解 XML 命名空间。然后使用它生成带有命名空间的 XML 树:u

>>> MY_NAMESPACES={'settings': 'http://example.com/url-for-settings-namespace'}
>>> e=etree.Element('{%s}current' % MY_NAMESPACES['settings'], nsmap=MY_NAMESPACES)
>>> etree.tostring(e)
'<settings:current xmlns:settings="http://example.com/url-for-settings-namespace"/>'

您可以将其与默认名称空间结合起来

>>> MY_NAMESPACES={'settings': 'http://example.com/url-for-settings-namespace', None:    'http://example.com/url-for-default-namespace'}
>>> r=etree.Element('my-root', nsmap=MY_NAMESPACES)
>>> d=etree.Element('{%s}some-element' % MY_NAMESPACES[None])
>>> e=etree.Element('{%s}current' % MY_NAMESPACES['settings'])
>>> d.append(e)
>>> r.append(d)
>>> etree.tostring(r)
'<my-root xmlns:settings="http://example.com/url-for-settings-namespace" xmlns="http://example.com/url-for-default-namespace"><some-element><settings:current/></some-element></my-root>'

请注意,您必须有一个元素nsmap=MY_NAMESPACES在您的 XML 树层次结构中。然后所有后代节点都可以使用该声明。在你的情况下,你没有那一点,所以 lxml 生成命名空间名称,例如ns0

另外,当您创建新节点时,请使用命名空间 URI 作为标记名称,而不是命名空间名称:{http://example.com/url-for-settings-namespace}current

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

lxml 标签名称带有“:” 的相关文章

随机推荐

  • AngularJS 与 Asp.net Web API:$http post 返回 XMLHttpRequest 无法加载:预检响应具有无效的 HTTP 状态代码 405

    当尝试使用 POST json 到 Asp net Web API 服务器时 http它返回以下错误 XMLHttpRequest cannot load http localhost 62158 api video add Respons
  • 我的类库应该面向哪个 .NET Framework 和 C# 版本?

    我正在构建一个 DLL 类库 我想让尽可能多的人可以使用它 我应该使用哪个版本的 NET Framework 和哪个 C 版本 是否可以为不同版本生成向后兼容的 DLL 或不同的 DLL 或者 Windows 是否会自动更新 NET 框架
  • 使用 Microsoft Graph SDK 从 OneDrive 下载大文件

    我正在尝试使用以下 Microsoft Graph 调用从 OneDrive 下载文件 using var strm await client Drives RemoteDriveId Items Id Content Request Ge
  • 如何通过进程 id 获取进程的 stdin? [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我知道我可以获得流程stdin在中使用子流程python like import sub
  • Logback:SizeAndTimeBasedRollingPolicy 将totalSizeCap 应用于maxHistory 中的每一天

    登录版本1 2 3 我想在我们的 logback 配置文件 logback xml 中使用 SizeAndTimeBasedRollingPolicy 但此时 SizeAndTimeBasedRollingPolicy 无法按预期运行 ht
  • Spring Data MongoDB:BigInteger 到 ObjectId 转换

    我在使用 Spring Data MongoDB 更新查询时遇到问题 我检索一些对象的 id 作为 BigInteger 值 然后我想进行以下查询 Query query new Query Criteria where id is id
  • 如何删除codeigniter上的cookie

    我不知道如何删除cookie 我想要的是当我提交表格时 cookie 也被删除 我尝试了 delete cookie name 但不起作用 我想是因为我创建的cookiejavascript 请检查我的代码来解决这个问题 这是我的示例文本字
  • 通过 JNDI 使用 ActiveMQ

    我正在尝试使用 JNDI 创建与 ActiveMQ 的简单连接 I have 名为 example A 的队列 根据ActiveMQ 文档涉及 JNDI 如果我想通过 JNDI 使用 ConectionFactories 和队列 主题 我必
  • 如何在视图出现之前滚动到 iPhone 上 UITableView 的底部

    我有一个UITableView填充有不同高度的单元格 我希望当视图被推入视图时表格滚动到底部 我目前有以下功能 NSIndexPath indexPath NSIndexPath indexPathForRow log count 1 in
  • hibernate:在运行时创建实体(带注释)

    是否可以在运行时创建休眠实体类 带注释 应该和运行时添加的表有关 实体应该对 Hibernate 可见 这一点很重要 一般情况下可以吗 您能就这个问题给我一些建议吗 我明白 反思是关键词 但还要寻找更多的词 问候 在这种情况下 您可能希望在
  • 春天不行。 [未初始化常量 Spring::SID::DL ]

    我无法运行 Spring 这是错误日志 myid no MacBook Pro myid spring Users myid rbenv versions 1 9 3 p484 lib ruby gems 1 9 1 gems spring
  • 私有字段会被子类继承吗?

    我读过 子类不能继承私有字段或方法 然而 在这个例子中 class SuperClass private int n 3 int getN return n class SubClass extends SuperClass public
  • c中“atoi”和“strtol”之间的用法差异

    我一直在使用atoi已经一年了 最近几天我遇到一个问题 atoi 20 给出的值为0作为输出 当我用谷歌搜索这个问题时 我发现它已被弃用并且strtol应该使用 我发现的有趣的一点是atoi内部使用strtol 那么 当我将其更改为时 问题
  • 使用 StreamReader 查找字符串的有效方法

    我获取网络响应并使用 Streamreader 获取字符串形式的响应 我的代码是 HttpWebResponse response HttpWebResponse request GetResponse StreamReader reade
  • 如何使用 autofac 注册类型化 httpClient 服务?

    我正在创建 MVC Web 应用程序 该应用程序使用单独的 net core 2 2 调用 apiHttpClients 调用每个控制器 相同的 api Ex 对于用户控制器操作 UserService httpclient 对于后控制器操
  • rgdal“gdal-config”中配置错误

    我目前正在 Linux 集群上用 R 运行一些物种分布建模和丰富度映射 为了运行我的分析 我需要安装 rgdal 以便建模包中的栅格函数正常工作 我已经安装了 proj4 和 gdal 但是 当我尝试安装 rgdal 时 我收到一条错误消息
  • 成为 EC2 上的根设备意味着什么?

    我在 EC2 文档中找不到答案 它是做什么用的 如果我启动了 EBS 支持的实例 则该实例的根设备将是 EBS 卷 如果我在实例上安装一些工具 软件 这些工具 软件是否会默认安装在根实例上 不过我想这个问题确实来自于对根设备的了解很少 有这
  • 如何添加到 MySQL 中的每一行?

    我们有一个简单整数列 我们想要向每一行添加值 10 对于 MySQL 数据库 我们如何在 sql 中执行此操作 实际上我们还有另一个列需要做同样的事情 它是一个日期 我们需要在日期上添加一个月 怎么做 整数 UPDATE table nam
  • 指针是否保证>某个值?

    在 C 中 当我这样做时new 甚至malloc 是否能保证返回地址大于某个值 因为 在这个项目中 我发现使用 0 1k 作为枚举非常有用 但如果有可能获得这么低的值 我不想这样做 我唯一的目标系统是 32 位或 64 位 CPU 操作系统
  • lxml 标签名称带有“:”

    我正在尝试使用 lxml etree 从 JSON 对象创建 xml 树 有些标记名中包含冒号 例如 设置 当前 我尝试使用 settings current 作为标签名称 但我得到这个 ns0 当前 xmlns ns0 设置 是的 首先阅