问题标签 [elementtree]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
25309 浏览

python - Python:xml ElementTree(或 lxml)中的命名空间

我想检索一个遗留的 xml 文件,操作并保存它。

这是我的代码:

我加载的文件包含:

在根标签处。

我有以下与命名空间有关的问题:

  • 如您所见,对于每个标记调用,我在开始时都给出了命名空间来检索一个孩子。
  • 生成的xml文件<?xml version="1.0" encoding="utf-8"?>一开始没有。
  • 输出中的标签包含这样的内容,<ns0:eventDescription>而我需要输出作为原始<eventDescription>的,开始时没有命名空间。

这些如何解决?

0 投票
1 回答
8757 浏览

python - ElementTree 实例没有属性“fromstring”。那么,我做错了什么?

我正在尝试打开并解析一些 html。到目前为止,一切正常,例如,我可以打开源代码并打印它。但是在解析时,我被“ElementTree 实例没有属性'fromstring'”所困扰

这是我的 Django view.py 代码:

Django 版本:1.2.4 Python 版本:2.6.5

请问有人有什么想法吗?

0 投票
2 回答
34704 浏览

python - 在 Python 中使用 ElementTree 发出命名空间规范

我正在尝试使用包含 XML 声明和命名空间的元素树发出 XML 文件。这是我的示例代码:

但是,既不会出现<?xml标记,也不会出现任何命名空间/前缀信息。我在这里有点困惑。

0 投票
1 回答
541 浏览

python - ElementTree XPath 奇怪的行为


,我正在使用ElementTree(1.3) 和 Python 2.7 并享受 XPath 功能,
但是其中一个搜索结果让我感到惊讶。

我的 XML 示例:

问题1:
当我findall用来获取第一个找到的元素时

它什么也没找到。

但是,当我更改 XML 文件时,该BackEnd元素包含子元素

然后正确找到搜索的元素。

你遇到过这样的行为吗?
我做错了什么还是这是ElementTree实施中的错误?

问题 2:
我遇到的另一个问题是xmlns.
假设我将 XML 第一行更改为包含xmlns

在这种情况下,我必须将查找字符串更改为:

有没有办法告诉 ElementTree 在解析期间忽略 xmlns 并将所有元素的名称(包括根)视为没有前缀?

问候,
兹比格纽

0 投票
1 回答
757 浏览

python - ElementTree 命名空间不便

我无法控制我得到的 XML 的质量。在某些情况下,它是:

在其他我得到:

我想我也应该处理

整个架构都是相同的,我只需要一个解析器来处理它。我该如何处理所有这些情况?我需要 XPath 和其他 lxml 好东西来解决这个问题。如何在 etree.parse 期间使其保持一致?我不想在每次需要使用 XPath 时检查名称空间。

0 投票
3 回答
2695 浏览

python - 使用 Python 在 ElementTree 中添加兄弟元素

使用 XML 等

我需要添加类似的兄弟姐妹

ElementTree 是否具有添加兄弟节点的功能?如果没有,我想我需要一个函数来获取父节点并添加子节点,我该怎么做?

0 投票
1 回答
3490 浏览

python - 带有 : 在 lxml 中的名称的标签

我正在尝试使用 lxml.etree 来解析 Wordpress 导出文档(它是 XML,有点像 RSS)。我只对已发布的帖子感兴趣,因此我使用以下内容循环浏览已发布的帖子:

data找到所有标签的标签在哪里itemitem标签包含帖子、页面和草稿。我的问题是 lxml 找不到:名称中有 a 的标签(例如wp:post_type)。当我尝试时,item.find("wp:post_type")我收到此错误:

我假设KeyError : ':'标签名称中的冒号是无效的。有什么方法可以转义冒号,以便 lxml 找到正确的标签?:在这种情况下有什么特殊含义吗?还是我做错了什么?任何帮助,将不胜感激。

0 投票
6 回答
475 浏览

python - 如何在不解析整个文件的情况下获取树的根?

我正在制作一个xml 解析器来解析来自不同工具的 xml 报告,并且每个工具都会生成具有不同标签的不同报告。

例如:

Arachni生成一个带有<arachni_report></arachni_report>树根标记的 xml 报告。

nmap生成一个带有<nmaprun></nmaprun>树根标记的 xml 报告。

我试图不解析整个文件,除非它是来自我想要的任何工具的有效报告。

我想到的第一件事是 ElementTree,解析整个 xml 文件(假设它包含有效的 xml),然后根据树根检查报告是否属于 Arachni 或 nmap。

我目前正在使用 cElementTree,据我所知 getroot() 在这里不是一个选项,但我的目标是让这个解析器只对识别的文件进行操作,而不解析不必要的文件。

顺便说一句,我还在学习xml解析,提前谢谢。

0 投票
2 回答
4038 浏览

python - Python ElementTree XML 解析

我正在尝试解析通过使用 adobe pro 将 pdf 导出为 xml 1.0 获得的 xml 文件。我正在使用 Python 和 ElementTree 进行解析。pdf 包含一个表格,该表格跨越多个页面并具有多个不同的表格标题。

我想从包含特定字符串(例如“MECHANICAL”)的标题开始的表中解析和提取行和列数据,并在下一个表标题部分(例如“COMPLETED”)停止。从而排除本节前后的所有行和列数据。没有容易解析的标签,标签模式只是重复。

这是我当前的python代码:

这是我的 XML 文件:

0 投票
4 回答
2512 浏览

python - Python ElementTree 重复检查器

所以我必须编写一个“重复检查器”来比较两个 XML,看看它们是否相同(包含相同的数据)。现在因为它们来自同一个类并且是从 XSD 生成的,所以结构内部元素的顺序很可能是相同的。

我能想到的进行重复检查的最佳方法是设置两个字典(dictLeft、dictRight)并将 xpath#value 保存为键和它出现的次数。像这样的东西:

剩下:

比较这两个字典会给我一个相当准确的指示,表明这两个 XML 是否相同(我可能会得到错误的结果,但它非常遥远)。

还有其他人有更好的主意吗?也许 ElementTree 中有一个我不知道的函数?

编辑:为了更好地解释:

将被视为相同。我忽略了属性。这个想法是让代码尽可能简单,同时又不会过多地影响性能。