当前位置: 首页 > 面试题库 >

将Python ElementTree转换为字符串

谭昕
2023-03-14
问题内容

每当我致电时ElementTree.tostring(e),都会收到以下错误消息:

AttributeError: 'Element' object has no attribute 'getroot'

还有其他方法可以将ElementTree对象转换为XML字符串吗?

追溯:

Traceback (most recent call last):
  File "Development/Python/REObjectSort/REObjectResolver.py", line 145, in <module>
    cm = integrateDataWithCsv(cm, csvm)
  File "Development/Python/REObjectSort/REObjectResolver.py", line 137, in integrateDataWithCsv
    xmlstr = ElementTree.tostring(et.getroot(),encoding='utf8',method='xml')
AttributeError: 'Element' object has no attribute 'getroot'

问题答案:

Element对象没有.getroot()方法。挂断该电话,该.tostring()电话将正常工作:

xmlstr = ElementTree.tostring(et, encoding='utf8', method='xml')

.getroot()当有ElementTree实例时才需要使用。

其他说明:

  • 这将产生一个 bytestring ,在Python 3中是该bytes类型。
    如果必须有一个str对象,则有两个选择:

    1. 从UTF-8解码结果字节值: xmlstr.decode("utf8")

    2. 使用encoding='unicode'; 这样可以避免编码/解码周期:

          xmlstr = ElementTree.tostring(et, encoding='unicode', method='xml')
      
  • 如果要使用UTF-8编码的字节串值或使用Python 2,请考虑到ElementTree不能正确检测utf8为标准XML编码,因此将添加一个<?xml version='1.0' encoding='utf8'?>声明。如果要防止这种情况,请使用utf-8UTF-8(带破折号)。使用时encoding="unicode"不添加声明头。



 类似资料:
  • 问题内容: 我想在GO中将字符串数组转换为字节数组,以便可以将其写到磁盘上。将字符串数组()解码为字节数组()的最佳解决方案是什么? 我正在考虑对字符串数组进行两次迭代,第一个迭代以获得字节数组所需的实际大小,然后第二个迭代写入每个元素的长度和实际字符串()。 解决方案必须能够以其他方式进行转换;从一个到一个。 问题答案: 让我们忽略一个事实,那就是走一秒钟。您需要做的第一件事是将序列化格式编组为

  • 我正在使用Schembuf在带有套接字的计算机之间更改数据。要传输数据,我使用以下内容: 然而,我注意到Protobuf无法读取任何非int类型的接收数据(它将其分配给0)。果不其然,如果我不使用套接字,但试图用相同的代码片段返回消息,则会发生相同的情况: 我还指出: 那么,为什么我不能正确地将数据转换回字符串呢?如果这是一个参考问题,为什么protobuf不能读取字符数组数据或从字符数组转换的字

  • 问题内容: 如何在Java(Android)中将字符串转换为Uri?即: myUri = ???; 问题答案: 您可以使用静态方法从

  • 问题内容: 如何将输入的生日字符串(如02 26 1991)放入公历? 我尝试首先解析它,但是它一直给我一条错误消息,所以我不太确定自己在做什么错。在此日期之前,我还有其他输入数据。一个是另一个字符串,一个是双精度值。 问题答案: 使用解析日期,然后将其分配给。 第三行可以替换为: 但我更喜欢第一个版本。

  • 问题内容: 我正在尝试将数据库中的一些值添加到Go中。其中一些是时间戳。 我得到错误: 不能在数组元素中使用U.Created_date(类型time.Time)作为类型字符串 我可以转换成吗? -- 编辑 我添加了以下内容。现在可以了,谢谢。 问题答案: 您可以使用方法将转换为。这使用格式字符串。 如果您需要其他自定义格式,则可以使用。例如,使用格式字符串获取时间戳的格式。 例: 输出(在Go

  • 注意:这个问题包含不建议使用的前1.0代码!不过,答案是正确的。 要在Rust中将转换为,我可以执行以下操作: 我知道如何将转换为的唯一方法是获取其中的一个片段,然后像这样使用: 有没有办法直接将转换为?

  • 我想将转换为,但由于某种原因无法转换。

  • 所以,基本上。我不想知道是否有可能(如果有可能,如何),实际上把一个类在C#代码中直接转换成一个字符串?因此,基本上,该类中的所有内容都进入字符串。 这有点短,但我不知道怎么说得更清楚。