问题标签 [xml.etree]
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.
python - 在 Python 中,解析自定义 XML 标签而不解析 HTML
我是 Python 2.7 的新手,我正在尝试解析一个包含 HTML 的 XML 文件。我想解析自定义 XML 标记而不解析任何 HTML 内容。最好的方法是什么?(如果有帮助,我的自定义 XML 标记列表很小,所以如果有一个 XML 解析器可以选择只解析指定的标记,这可能会正常工作。)
例如,我有一个 XML 文件,看起来像
我希望能够解析除 HTML 之外的所有内容,尤其是将 myTag2 的值提取为未解析的 HTML。
编辑:这里有更多信息来回答下面的问题。我以前尝试过使用 ElementTree。这就是发生的事情:
我想要的 HTML 字符串已被解析并存储为标签和文本:
但我真的很想能够做这样的事情......
解决方案:
har07 的回答效果很好。我稍微修改了该代码以解决极端情况。这是我正在实施的:
那么如果
原始代码将仅返回以第一个 XML 格式标记开头的文本,但修改后的版本将捕获所需的文本:
python - 如何使用 Python 将命名空间和前缀插入 XML 字符串?
假设我有一个 XML 字符串:
我想插入 XML Schema 使用的类型的命名空间,在所有元素名称前面放置一个前缀。
lxml.etree
有没有办法使用或类似的库来做到这一点(除了蛮力查找替换或正则表达式) ?
python - Python etree.ElementTree IOError: [Errno 22] 无效模式 ('rb') 或文件名 -
我正在使用 zipfile 模块,每当我尝试读取提取的 XML 数据时,我都会收到此错误并且我不太理解,我尝试使用不同的模式来解决它,但没有奏效。
这是我的代码:
python - 如何使用 python 更新 xml 标签值?
我是 Python 新手,我想知道如何使用 Python 实现以下目标。
我有一个 XML 文件,我想打开该文件并且必须为 tag 设置新值。
如果在更新过程中出现任何故障,则文件将变为原始状态
文件名:ABC.xml
将文件路径传递给某个函数。
如果在值更新期间没有问题,则需要使用更正的值更新原始文件。
预期输出:
如果出现任何问题,文件应该回滚。
提前致谢。
python - 如何删除空 xml 标签中的多余空间
我有一个 xml 文件,我正在其中查找特定标签(例如: tag <x>
),如果找到他,我会将其值替换/更新为特定文本(例如:test)。
Python 版本 3.5.0。
示例 xml 文件:
这是我的代码:
这是我的输出:
一切都按预期工作。
但我的问题是空标签中有额外的空间:<a />
在标签名称“a”和“斜杠”之间,输入 xml 文件中不存在。
我正在处理带有很多空标签的相当大的 xml 文件,所以每个额外的空间都会使这些文件变得更大。
有没有办法阻止ElementTree.write()添加额外的空间?
注意:我想在 Python 模块中使用构建,而不是安装第三方解决方案。
非常感谢您的建议!
python-2.7 - 在现有 xml 中添加重复的子标签
示例.py
o/p 运行 sample.py 3 次
[注意:我没有低于输出]所需的 o/p 是如果我运行 sample.py 3 次,o/p 应该如下
python - 如何在 Python 中使用 lxml 来获取以下元素?
我有下一个 XML 文件:
树的常见结构是:
我想要的是获取字符串与MY GROUP和所有以下字段不同的分隔符,直到下一个分隔符(我的目的是使每个元素不可见,除了分隔符MY GROUP和字段in_group_144,in_group_142,in_group_148,in_group_147、in_group_146、in_group_145、in_group_141和in_group_143)。
XML 树会改变其字段名称,因此通过名称获取字段将不是解决方案。
这里lxml/Python : get previous-sibling给出了如何获取上一个兄弟,但是我怎样才能以有效的方式获取其标签为分隔符的上一个兄弟?
我目前的解决方案:
有没有比递归方法更直接的方法来管理我的目标?
python - Python 比较目录列表中 XML.Etree 和文件和文件夹名称的差异
我正在使用 Python 将我的 flickr 照片与本地硬盘照片目录进行比较。
为了做到这一点,我在 Python 中使用 OAuth 并获取我在 flickr 中拥有的每个文件夹/专辑的 etree 列表。flickr 上的文件夹/专辑内容“应该”与我的本地副本目录匹配。
当我的本地驱动器和 flickr 上的照片列表中没有项目时,我希望我的脚本告诉我(反之亦然)。
flickr 照片的“标题”字段应与 Linux 上的文件名相同,Linux 上的目录名称将/应该与 flickr 上的相册名称匹配。这就是我目前的设置方式。
我想知道在 Python 中比较这些项目列表(etree 节点项目与os.listdir()
项目)的最佳和最有效的方法是什么?
除非必要,否则我宁愿不使用sort()
bash 将任何管道输出排序为文件名。如果可能的话,我想把所有东西都保存在 Python 中,因为我只是在学习它。
我可以使用os.listdir()
它并将其与XML.Etree
返回到 flickr 的节点进行比较,但是进行这种比较的最佳方法是什么?
请记住,在比较来自 flickr 和 Linux 的项目时,这些列表可能不同并且可能没有排序。
我编写了以下代码片段以从 flickr 获取结果:
上述代码的输出示例如下:
getPhotos 的 API 在这里:https ://www.flickr.com/services/api/flickr.photosets.getPhotos.htm ,其中显示了一些示例 xtree/XML 输出。
Etree API:https ://docs.python.org/2/library/xml.etree.elementtree.html
python - 读取 CSV 文件并替换 xml 标签
我想读取一个 CSV 文件并将 xml 文件中的标签替换为 CSV 文件的第二列。标签“名称”值位于第一列。
XML 结构的样子。
Python代码
我该如何处理?
CSV 文件如下所示:
输出应如下所示:
好的,这是我的解决方案:
好吧,我正在使用一个数组。我可以将文件中的值复制到数组中。对于大文件,它需要更好的代码。
python - etree xml python如何修改严格性?
我在 Python 中使用 etree 来解析 XML 文件,该文件恰好在节点内有一个“<”字符,所以它返回一个错误:
“与元素类型“BLAHBLAH”关联的属性 blahblah 的值不能包含“<”字符。
没有进入关于格式良好的 XML 的讨论(我别无选择,我没有编写 xml),我想知道是否有办法在 Python 中抑制 etree 中的错误,以便我可以继续解析 XML?