elementtree 相关问题

ElementTree是一个用于创建和解析XML的Python库。

在文档开头添加评论

使用 ElementTree,如何在 XML 声明下方和根元素上方放置注释? 我尝试过 root.append(comment),但这将注释作为 root 的最后一个子项。我可以吗

回答 3 投票 0

使用 <b> 标签将 XML 解析为字符串

使用 .findall('string') 时我只得到 value1 ,其余的被忽略。如何获得完整价值? xml文件输入: 值1 值2 使用 .findall('string') 时我只得到 value1 ,其余的被忽略。如何获得完整价值? xml文件输入: <resources> <string name="key">value1 <b>value2</b>. value3</string> </resources> Python代码: import xml.etree.ElementTree as ET tree = ET.parse(xml_file) root = tree.getroot() for string in root.findall('string'): name = string.get('name') value = string.text 你可以用 itertext() 来做到这一点 for string in root.findall('string'): value = ''.join(string.itertext()) print(value) # output: # value1 value2. value3

回答 1 投票 0

使用python从citygml文件中提取建筑物的id

我正在努力从 citygml 文件中提取建筑物的 ID,但无法成功 我试过这段代码: 导入 xml.etree.ElementTree 作为 ET def 加载文件(): print("开始文件加载过程...

回答 1 投票 0

未出现在发出的条件之外的标签(Python/XML)

我有一个脚本,应该创建一个空的通知标签,有时用某些文件夹中存在的通知名称填充它。否则它必须保持为空(没有文本)。 该...

回答 1 投票 0

ElementTree.find() 似乎错过了最近附加的元素

我无法理解这个。当 find() 从 XML 字符串加载时可以找到完全相同的元素时,为什么它找不到附加元素? 以下函数创建一个

回答 1 投票 0

使用 XML.element.tree 更改命名空间

使用Python: 我的程序打开一个 XML 格式的模板,插入用户信息,然后保存它。 模板如下: 使用Python: 我的程序打开一个 XML 格式的模板,插入用户信息,然后保存它。 模板如下: <ids xmlns="http://standards.buildingsmart.org/IDS" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://standards.buildingsmart.org/IDS http://standards.buildingsmart.org/IDS/1.0/ids.xsd"> <info> <title></title> <version></version> <author></author> <date></date> </info> <specifications> </specifications> </ids> 我使用 xml.etree.ElementTree (并在此阶段插入用户数据,出于简单原因我跳过了这一阶段): base_tree = ET.parse('XML_templates/base_structure_02.XML') base_root = base_tree.getroot() ET.indent(base_root,space =" ") xml_str = ET.tostring(base_root, encoding='unicode', method='xml') print(xml_str) 输出是: <ns0:ids xmlns:ns0="http://standards.buildingsmart.org/IDS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://standards.buildingsmart.org/IDS http://standards.buildingsmart.org/IDS/1.0/ids.xsd"> <ns0:info> <ns0:title /> <ns0:version /> <ns0:author /> <ns0:date /> </ns0:info> <ns0:specifications> </ns0:specifications> </ns0:ids> 问题是我不希望程序为每个项目(ns0)获取命名空间,这可能吗?谢谢你 您必须注册命名空间: 例如 ET.register_namespace("", "http://standards.buildingsmart.org/IDS")

回答 1 投票 0

如何从列表中的不同目录中删除重复的文件名并将它们用作 xml 标记文本?

我有一个文件树,例如: 2_产品 2-1_CategoryName1_产品 2-1-1_名称1_产品 LLL_nomenclature1_product.zip LLL_nomenclature1_product(文件夹) ...

回答 1 投票 0

etree.fromstring 接受无效的 xml

我想测试python中的服务器是否发送了无效的xml。 代码是 content_element = etree.fromstring(内容) 和 xml 类似: 我想测试 python 中的服务器是否发送了无效的 xml.. 代码是 content_element = etree.fromstring(content) xml 类似: <data = ""></data> 所以由于“”它是无效的 我认为你不能强迫 xml.etree 接受错误的 xml,但你可以使用 beautifulsoup 读取错误的 xml from bs4 import BeautifulSoup soup = BeautifulSoup(content, 'lxml')

回答 1 投票 0

用ElementTree解析.targets文件没有找到指定的标签

我正在尝试使用 ElementTree 从 NuGet 包的 .targets 文件中解析信息。 我试图找到的是标签。我正在使用以下 p...

回答 1 投票 0

ElementTree findall() 返回空列表

我正在尝试编写一个小脚本来与last.fm API 进行交互。 我有一点使用 ElementTree 的经验,但我以前使用它的方式似乎不起作用,它

回答 1 投票 0

如何在Python中合并2个xml

XML 1: 1245678 2024-06-06 12345678.pdf XML 1: <invoiceCopy> <document> <invoicenumber>1245678</invoicenumber> <invoicedate>2024-06-06</invoicedate> <pdffilename>12345678.pdf</pdffilename> <sendingsystemid>ABC</sendingsystemid> </document> </invoicecopy> XML 2: <invoiceCopy> <document> <invoicenumber>2222222</invoicenumber> <invoicedate>2024-06-06</invoicedate> <pdffilename>2222222.pdf</pdffilename> <sendingsystemid>XYZ</sendingsystemid> </document> </invoicecopy> 所需输出: <invoiceCopy> <document> <invoicenumber>1245678</invoicenumber> <invoicedate>2024-06-06</invoicedate> <pdffilename>12345678.pdf</pdffilename> <sendingsystemid>ABC</sendingsystemid> </document> </invoicecopy> <invoiceCopy> <document> <invoicenumber>2222222</invoicenumber> <invoicedate>2024-06-06</invoicedate> <pdffilename>2222222.pdf</pdffilename> <sendingsystemid>XYZ</sendingsystemid> </document> </invoicecopy> 这是我从以下程序得到的输出: <invoiceCopy> <document> <invoicenumber>1245678</invoicenumber> <invoicedate>2024-06-06</invoicedate> <pdffilename>12345678.pdf</pdffilename> <sendingsystemid>ABC</sendingsystemid> </document> <invoiceCopy> <document> <invoicenumber>2222222</invoicenumber> <invoicedate>2024-06-06</invoicedate> <pdffilename>2222222.pdf</pdffilename> <sendingsystemid>XYZ</sendingsystemid> </document> </invoicecopy> </invoicecopy> 我的计划: xml_files = glob.glob(XML_DIR +"/*.xml") print ("xml files are " , xml_files) xml_element_tree = None for filename in xml_files: data = ElementTree.parse(filename).getroot() print (data) for result in data.iter('invoiceCopy'): if xml_element_tree is None: newfilename = "print" + datetime.today().strftime('%Y%m%d_%H%M%S')+ ".xml" print(newfilename) xml_element_tree=data else: for statement in data.iter('invoiceCopy'): xml_element_tree.append(statement) if xml_element_tree is not None: result1 = '' m_encoding = "iso-8859-1" dom = xml.dom.minidom.parseString(ElementTree.tostring(xml_element_tree)) xml_string = dom.toprettyxml() for result in xml_string.split('\n'): if not result.strip() == '': result1=result1+result+"\n" part1, part2 = result1.split('?>') with open("/data/ebpp/star/fh/invoicecopy/print/" + newfilename, "w") as xfile: xfile.write(part1 + 'encoding=\"{}\"?>'.format(m_encoding) + part2) xfile.close() 为什么第二个 xml 附加在第一个 xml 的根内部?请帮忙 为什么第二个 xml 附加在第一个 xml 的根目录中? 因为你的代码就是这样做的: if xml_element_tree is None: newfilename = "print" + datetime.today().strftime('%Y%m%d_%H%M%S')+ ".xml" print(newfilename) xml_element_tree=data else: for statement in data.iter('invoiceCopy'): xml_element_tree.append(statement) 在第一次迭代中,xml_element_tree 为 None,因此它直接使用数据。 在随后的迭代中,它……将所有invoiceCopy元素追加到xml_element_tree(本身就是一个invoiceCopy元素)。 XML 树只能有一个根,因此您必须在循环之前创建自己的新根元素,或者使用 Python 列表。

回答 1 投票 0

将 xml 文件加载到 df(多级)

我正在尝试使用 etree.ElementTree 从许多 xml 文件加载数据。 xml 中的数据类似于以下示例: 2927695 我正在尝试使用 etree.ElementTree 从许多 xml 文件加载数据。 The data in the xml looks like this sample: <mydata> <Record> <Field name="ParaA">2927695</Field> <Field name="Index"/> <Field name="ParaB">D:\path\data</Field> <Field name="ParaC">116.4</Field> <Field name="ParaD">1583.4</Field> <Field name="ParaBE">12.0</Field> <Row> <Field name="Para1">1</Field> <Field name="Para2">D5A</Field> <Field name="Para3">1586.0</Field> </Row> <Row> <Field name="Para1">2</Field> <Field name="Para2">D4A</Field> <Field name="Para3">118.0</Field> <Field name="Para4">12.0</Field> </Row> </Record> </mydata> 行数是动态的。我想要 df 与 帕拉A |第 1 段 |帕拉2 已阅读文档但无法解决它。我认为问题在于该行正在记录中。 我需要的是像下面这样的df ParaA Para1 Para2 Para3 Para4 2927695 1 D5A 1586.0 2927695 2 D4A 118.0 12.0 我的代码的 df 是空的 import pandas as pd import numpy as np import xml.etree.ElementTree as ET xml_file = r'.\Test.xml' tree = ET.parse(xml_file) root = tree.getroot() data = [] for record in root.findall('record'): record_data = {} for elem in record: record_data[elem.tag] = elem.text data.append(record_data) df = pd.DataFrame(data) print(df) 希望有人能帮忙。 适用于您提供的数据 for record in root.findall('Record'): record_data = [] for elem in record: match elem.tag: case 'Field': if elem.attrib['name'] == 'ParaA': paraa = elem.text case 'Row': row={'ParaA': paraa} for field in elem.findall('Field'): row.update({field.attrib['name']:field.text}) record_data.append(row) df 输出: ParaA Para1 Para2 Para3 Para4 0 2927695 1 D5A 1586.0 NaN 1 2927695 2 D4A 118.0 12.0

回答 1 投票 0

Pylint 错误消息:“E1101:模块‘lxml.etree’没有‘strip_tags’成员’”

我第一次在个人项目中尝试使用 lxml 和 python,并且我尝试使用 etree.strip_tags() 从一些源代码中剥离标签。 出于某种原因,我一直得到...

回答 1 投票 0

如何使用命名空间迭代Elementtree

我一直在尝试使用 python 中的 ElementTree 解析 xml 文档来修改其中一个元素,但是由于命名空间,我不断遇到问题。 我可以从我的...

回答 2 投票 0

使用完整路径从ElementTree获取值

假设我们有以下 xml 字符串 xml_string = ''' ...

回答 1 投票 0

访问下一个兄弟的文本

这是 jenkins xml 文件的一部分。 我想用 xpath 提取project_name 的defaultValue。 在本例中,该值是 *****。 ...

回答 2 投票 0

如何使用 ElementTree 从 xml 中提取 python 中“xml:id”的值到数据框中

我目前正在将书目信息从 XML 结构整理为几乎任何其他可用的内容。我的最后一步是提取“xml:id”的值

回答 1 投票 0

如何用Python写入xml文件根值

我有一个脚本,我想用它来创建写入文件以更新设备上的序列号。 它执行文件夹/文件路径检查 -> 复制 Read.xml 并创建 Write.xml(复制) -> Obta...

回答 1 投票 0

ElementTree 错误:“xml.etree.ElementTree.Element”对象没有属性“root”

我是 XML 新手,一直在努力理解如何从 API 调用中解压以下 xml 响应。 我尝试过使用 import xml.etree.ElementTree 但没有运气。大多数教程都是...

回答 1 投票 0

Python ElementTree – 如何编辑 XML 文件并将某些标签保持为自关闭?

我正在使用 ElementTree 在 Python 3.10 中编辑 XML 文件。 我需要某些空元素来使用自关闭标签,即 ,而其他元素则需要完整写出 ...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.