问题标签 [celementtree]

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 回答
1565 浏览

python - 在 Python 中构建通用 XML 解析器?

我是新手,有 1 周的 Python 脚本编写经验。

我正在尝试编写一个通用解析器(我未来所有工作的库),它解析任何输入 XML,而无需任何标签的先验知识。

  • 解析输入 XML。
  • 从 XML 中获取值并根据标签设置值。
  • 在工作的其余部分使用这些值。

我正在使用“xml.etree.ElementTree”库,并且能够以下面提到的方式解析 XML。

现在的问题是,如果我想在不了解标签和元素的情况下解析 XML 并使用这些值,我该怎么做。我已经阅读了多个教程,但它们都通过使用如下标签帮助我解析 XML

谁能指出我正确的教程或库或代码片段来动态解析 XML。

0 投票
2 回答
3175 浏览

python - 通过 xml.etree 读取 XML 文件时出错

我正在尝试使用 xml.etree 在 python 中读取 XML 文件,但有时对于某些文件,我在解析文件时会出现内存错误。我的 XML 文件大小为 912Mb,问题与文件大小有关吗?

代码:

错误:

更新:根据许多建议,我尝试了 lxml

代码:

错误:

更新 2:尝试了 cElementTree

代码:

错误:

0 投票
1 回答
84 浏览

python - 解析 XML 时无法找到父标签的子标签

我正在尝试解析大小超过 1GB 的 XML 文件,因此我正在使用iterparse但我无法找到第二级子级。从下面的代码中,我可以得到 elem 的孩子,但不能得到 child1 的孩子,即我无法进入 child2 循环

代码:

XML 示例:完整的 XML 文件 --> XML

0 投票
1 回答
26 浏览

python - 如何使用 ElementTree 从 xml 中取出特定的 xml 数据

我收到如下的 xml 响应

我想从上面的 xml 中获取只有激活属性的 xml,如下所示:-

我该怎么做我尝试如下 resp.txt 包含原始 xml 但它没有帮助

0 投票
1 回答
510 浏览

python - Visual Studio 中的 Python 2.7.11 在 cElementTree.py 中引发异常

我在 Visual Studio 2015 中编写 Python 代码,这在过去几天里运行良好,但是今天早上我决定将解决方案和目录移动到我的 Windows 机器上的 GitHub 监控目录。自从我移动解决方案并在调试模式下运行它后,它就会抛出以下消息:

类型的不可(浅)可复制对象<type 'element'>

我完全被难住了,因为我的项目中没有名为cElementTree.py的类;它实际上在这里:

我可以在原始位置运行代码就好了,所以在传输过程中有些东西搞砸了。我已经复制了很多次,它一直抛出异常。我该如何解决该错误?

0 投票
1 回答
455 浏览

python - 为什么这不能使用 python elementtree 检查元素工作

我终于决定学习如何在 python 中解析 xml。我使用 elementtree 只是为了获得基本的理解。我在 CentOS 6.5 上使用 python 2.7.9。我浏览了以下页面:

http://www.diveintopython3.net/xml.html

https://pymotw.com/2/xml/etree/ElementTree/parse.html#traversing-the-parsed-tree

并在这个论坛上进行了几次搜索,但我遇到了一些麻烦,我不确定这是我的代码还是我试图解析的 xml。

我需要能够验证某些元素是否在 xml 中。例如,在下面的 xml 中,我需要检查元素 Analyzer 是否存在,如果存在,则获取属性。然后,如果 Analyzer 存在,我需要检查 location 元素并获取文本,然后是 name 元素并获取该文本。我认为下面的代码会检查元素是否存在:

但这会产生不一致的结果,并且它似乎永远找不到位置或名称元素。例如:

似乎工作,但

或者

绝对不行。我猜 tree.find() 函数只适用于顶层?

那么我该如何做这个检查呢?

这是我的xml:

这是我的代码:

0 投票
0 回答
102 浏览

python - 如何从xml中提取属性值?

如果我有以下 xml:

我可以concept1通过做找到所有分支

IE

如何访问属性值?即看看codeforconcept1是否等于codefor concept2

0 投票
1 回答
2309 浏览

python - ElementTree 替换标签属性和更新文件

我正在尝试通过用正确的值替换标签属性来清理 XML 文件。

当我在下面运行我的代码时,标签属性被更新但仅在元素树标签对象中,XML 文件没有被更新/保存。

有没有办法在 ET.iterparse 中更新/保存对 XML 对象所做的更改?在我更改了循环中的所有标签属性值后,有没有办法更新文件?

当我在更改前后打印出 tag.attrib['v'] 时,它会正确更新为正确的值。但是我保存的 XML 文件没有反映这些更改。

我发现的所有解决方案都没有使用 ET.iterparse 方法。我正在处理一个相当大的文件,并希望保持我对 ET.iterparse 的使用。

使用:

  • 蟒蛇 2.7
  • xml.etree.cElementTree

谢谢。

0 投票
1 回答
244 浏览

python - 使用 cElementTree 解析 XML

我的任务是用 Python 重写一些旧的 XML 解析代码,我偶然发现了其中的乐趣,cElementTree我喜欢它,因为我可以用这么少的行做这么多。

我的经验水平xpath不是那么广泛,这个问题更多的是关于进一步深入结构。

我有这个test.xml

我用 Python 编写了这个脚本:

这给了我:

这成功地让我在“问题”中获得了我需要的信息。

问题是我需要访问多个“ndtran”节点(在“ndt”节点中)。在解析时,我可以将“tft”、“tc”和“esi”值作为组提取,但我需要遍历每个“tc”节点,提取“tft”、“tc”、“esi”值,将它们插入一个数据库,然后移动到下一个“tc”节点并再次执行此操作。

我试图用来迭代每一个是这样的:

这几乎让我到了那里(我认为),但它确实给了我一个错误。

我希望这是有道理的。我相信我所追求的是 DOM 解析方法,这很好,因为这些文档不是那么大。

我感谢任何正确方向的建议或指示。

0 投票
1 回答
82 浏览

python - 使用 cElementTree 解析属性

我正在学习 cElementTree,我的 XML 看起来像这样......我正在尝试获取“更新”文本(我可以!)和“链接”节点中“href”的属性值(我不能)。

我解析它的代码看起来像这样......

href 值根本没有被拉取。我确信这可能是不必要的第二个 for 循环。更新的填充很好,但我不知道如何获取 href 值。有人遇到这种情况吗?

提前谢谢了。珍妮