ホームページ バックエンド開発 XML/RSS チュートリアル lxml が XML を処理する際の文字エンコーディングの問題

lxml が XML を処理する際の文字エンコーディングの問題

Apr 18, 2017 am 09:16 AM

問題を単純化するために、xmlの内容は次の形式に単純化されます:

<?xml version="1.0" encoding="gbk"?>
<DOCUMENT>
<da><![CDATA[中文,就是任性]]></da>
</DOCUMENT>
ログイン後にコピー

そのエンコーディングはgbkであり、ノードの1つは中国語の文字です。 lxmlを使用してノードの値を抽出する場合、次の例外が発生しました

lxml.etree.XMLSyntaxError: Extra content at the end of the document
ログイン後にコピー

この時点で対応する Python スクリプトは次のとおりです:

tst = u&#39;<?xml version="1.0" encoding="gbk"?><DOCUMENT><da><![CDATA[中文,就是任性]]></da></DOCUMENT>&#39;
for event,element in etree.iterparse(BytesIO(tst.encode(&#39;utf-8&#39;))):
    print("%s, %s" % (element.tag, element.text))
ログイン後にコピー

しかし、単純化する前に別の例外が報告されました

lxml.etree.XMLSyntaxError: input conversion failed due to input error, bytes 0x8B 0x2C 0xE6 0x9D
ログイン後にコピー

どの例外であっても、やはりエンコーディングに関連していると推測されます文字の形。
さまざまな試みが役に立たなかった後、スタックオーバーフローでこの記事を確認しました。この記事で言及されている問題は、コードの一部を追加してみました

tst = u&#39;<?xml version="1.0" encoding="gbk"?><DOCUMENT><da><![CDATA[中文,就是任性]]></da></DOCUMENT>&#39;
tst = tst.replace(&#39;encoding="gbk"&#39;, &#39;encoding="utf-8"&#39;)
for event,element in etree.iterparse(BytesIO(tst.encode(&#39;utf-8&#39;))):
    print("%s, %s" % (element.tag, element.text))
ログイン後にコピー

置換ステートメントを追加しました。前のエンコーディング = "gbk" をエンコーディング "utf-8" とすると、最終的に結果が得られます:

da, 中文,就是任性
DOCUMENT, None
ログイン後にコピー

以上がlxml が XML を処理する際の文字エンコーディングの問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PowerPoint を使用して XML ファイルを開くことはできますか? PowerPoint を使用して XML ファイルを開くことはできますか? Feb 19, 2024 pm 09:06 PM

XML ファイルは PPT で開くことができますか? XML、Extensible Markup Language (Extensible Markup Language) は、データ交換とデータ ストレージで広く使用されている汎用マークアップ言語です。 HTML と比較して、XML はより柔軟であり、独自のタグとデータ構造を定義できるため、データの保存と交換がより便利で統一されます。 PPT (PowerPoint) は、プレゼンテーションを作成するために Microsoft によって開発されたソフトウェアです。包括的な方法を提供します。

Python で XML データを CSV 形式に変換する Python で XML データを CSV 形式に変換する Aug 11, 2023 pm 07:41 PM

Python の XML データを CSV 形式に変換する XML (ExtensibleMarkupLanguage) は、データの保存と送信に一般的に使用される拡張可能なマークアップ言語です。 CSV (CommaSeparatedValues) は、データのインポートとエクスポートに一般的に使用されるカンマ区切りのテキスト ファイル形式です。データを処理するとき、分析や処理を容易にするために、XML データを CSV 形式に変換する必要がある場合があります。 Pythonは強力です

Tomcatのログが文字化けする問題を解決するにはどうすればよいですか? Tomcatのログが文字化けする問題を解決するにはどうすればよいですか? Dec 28, 2023 pm 01:50 PM

Tomcat ログが文字化けする問題を解決する方法は何ですか? Tomcat は、JavaWeb アプリケーションのデプロイメントと実行をサポートするために広く使用されている、人気のあるオープン ソース JavaServlet コンテナです。しかし、Tomcat を使用してログを記録すると文字化けが発生することがあり、開発者を悩ませています。この記事では、Tomcat のログが文字化けする問題を解決するいくつかの方法を紹介します。 Tomcat の文字エンコーディング設定を調整する Tomcat はデフォルトで ISO-8859-1 文字エンコーディングを使用します。

Python を使用した XML でのエラーと例外の処理 Python を使用した XML でのエラーと例外の処理 Aug 08, 2023 pm 12:25 PM

Python を使用した XML でのエラーと例外の処理 XML は、構造化データの保存と表現に使用される一般的に使用されるデータ形式です。 Python を使用して XML を処理すると、エラーや例外が発生することがあります。この記事では、Python を使用して XML のエラーと例外を処理する方法を紹介し、参考用のサンプル コードをいくつか示します。 Try-Except ステートメントを使用して XML 解析エラーを捕捉する Python を使用して XML を解析すると、時々、次のようなエラーが発生することがあります。

Python は XML 内の特殊文字とエスケープ シーケンスを解析します Python は XML 内の特殊文字とエスケープ シーケンスを解析します Aug 08, 2023 pm 12:46 PM

Python は XML 内の特殊文字とエスケープ シーケンスを解析します XML (eXtensibleMarkupLanguage) は、異なるシステム間でデータを転送および保存するために一般的に使用されるデータ交換形式です。 XML ファイルを処理する場合、特殊文字やエスケープ シーケンスが含まれる状況に遭遇することが多く、これにより解析エラーやデータの誤解が生じる可能性があります。したがって、Python を使用して XML ファイルを解析する場合は、これらの特殊文字とエスケープ シーケンスの処理方法を理解する必要があります。 1. 特殊文字と

C# 開発で XML および JSON データ形式を処理する方法 C# 開発で XML および JSON データ形式を処理する方法 Oct 09, 2023 pm 06:15 PM

C# 開発で XML および JSON データ形式を処理する方法には、特定のコード サンプルが必要です。現代のソフトウェア開発では、XML と JSON の 2 つのデータ形式が広く使用されています。 XML (Extensible Markup Language) はデータの保存と送信に使用されるマークアップ言語であり、JSON (JavaScript Object Notation) は軽量のデータ交換形式です。 C# 開発では、XML と JSON データの処理と操作が必要になることがよくありますが、この記事では、C# を使用してこれら 2 つのデータ形式を処理し、添付する方法に焦点を当てます。

Python を使用して XML でデータ検証を実装する Python を使用して XML でデータ検証を実装する Aug 10, 2023 pm 01:37 PM

Python を使用した XML でのデータ検証の実装 はじめに: 実生活ではさまざまなデータを扱うことがよくありますが、その中でも XML (Extensible Markup Language) は一般的に使用されるデータ形式です。 XML は可読性と拡張性に優れており、データ交換や設定ファイルなどさまざまな分野で広く使用されています。 XML データを処理する場合、多くの場合、データの整合性と正確性を確認するためにデータを検証する必要があります。この記事では、Python を使用して XML でデータ検証を実装し、対応する

Python が XML ファイルを解析する方法 Python が XML ファイルを解析する方法 Aug 09, 2023 am 11:48 AM

Python による XML ファイルの解析方法 XML (eXtensibleMarkupLanguage) は、構造化データを表すために使用されるマークアップ言語です。 XML データを処理する場合、多くの場合、XML ファイルを解析して必要な情報を抽出する必要があります。 Python は、ElementTree、lxml など、XML ファイルを解析するための多くのライブラリとモジュールを提供します。この記事では、Python を使用して XML ファイルを解析する方法をコード例とともに紹介します。 Pythonでは、

See all articles