带有散列引用的 Python minidom 和 UTF-8 编码的 XML

标签 python hash reference character minidom

我在我的家庭项目中遇到一些困难,我需要解析 SOAP 请求。 SOAP 是使用 gSOAP 生成的,涉及带有特殊字符的字符串参数,例如丹麦字母“æøå”。

默认情况下,gSOAP 使用 UTF-8 编码构建 SOAP 请求,但不是发送原始格式的特殊字符(即特殊字符“æ”的字节 C3A6),而是发送我认为称为字符散列引用的内容(即. æ).

我不完全理解为什么 gSOAP 这样做,因为我可以看到它已经将传入的有效负载标记为 UTF-8 编码(内容类型:text/xml;charset=utf-8),但是这不是问题(我认为)。

无论如何,我猜 gSOAP 可能遵守传输规则,或者什么?

当我在 python 中使用 xml.dom.minidom.parseString() 解析来自 gSOAP 的请求时,我将元素值作为 unicode 对象,这很好,但字符散列引用未解码为 UTF-8 字符代码。它取消转义字符散列引用,但之后不解码字符串。最后我有一个 UTF-8 编码的 unicode 字符串对象:

所以如果字符串“æble”包含在 XML 中,它在请求中是这样的:

"æble"

解析 XML 后,DOM 文本节点数据成员中的 unicode 字符串如下所示:

u'\xc3\xa6ble'

我希望它看起来像这样:

u'\xe6ble'

我做错了什么?我应该在解析 SOAP XML 之前对其进行转义,还是应该在其他地方寻找解决方案,也许是 gSOAP?

提前致谢。

最好的问候 Jakob Simon-Gaarde

最佳答案

æble 实际上是 æble

解析后要得到预期的Unicode字符串u'\xe6ble',请求中的字符串应该是æble

关于带有散列引用的 Python minidom 和 UTF-8 编码的 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4663250/

相关文章:

python - 将图像数据转换为 3D

python - Pandas 映射到 TRUE/FALSE 作为字符串,而不是 bool 值

Ruby 哈希有点扁平化

java - Java中的对象引用对于不同的对象不同?

vb.net - MSBuild:条件构造(项目引用 | 文件引用)

python - 在 pytorch 中求零函数的导数给出运行时错误

python - Groupby 连续值和聚合

hash - 你如何递归地将哈希嵌入到文件中?

perl - 如何检查 key 是否存在于深层 Perl 哈希中?

c++ - wxWidgets:对 wxURL 的 undefined reference