teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

9

詳細を追記

2015/03/03 09:35

投稿

panda_bk
panda_bk

スコア99

title CHANGED
File without changes
body CHANGED
@@ -1,12 +1,14 @@
1
1
  最近、python開発を始めました。(使用バージョンは、python 2.7)
2
2
 
3
- xml.etree.ElementTreeを使ってXMLパースをしたいと思っています。
3
+ XPathライクな記法が使えるxml.etree.ElementTreeを使って
4
+ XMLパースをしたいと思っています。
4
5
 
5
- 以下のコードでxmlの"Hoge"タグ要素値を取得した場合、text変数の型が、
6
+ 以下のコードで、XMLファイルの"Hoge"タグ要素値を取得した場合、text変数の型が、
6
7
  日本語等のマルチバイト文字が含まれる場合unicode型に、そうでない場合string型に自動変換されている様です。
7
8
 
8
9
  これをマルチバイトであってもstring型で取得できる様に動きを変える事は出来ないでしょうか?
9
- 現状は後続処理でunicode型の場合は"encode("cp932")する"みたいな変換ロジックを入れざるを得ない状況です。
10
+ 現状は後続処理でunicode型の場合は"encode("cp932")する"みたいな変換ロジックを入れざるを得ない状況です。
11
+
10
12
  ```lang-xml
11
13
  <Test>
12
14
  <Hoge>日本語</Hoge>

8

xmlサンプルを追記

2015/03/03 09:35

投稿

panda_bk
panda_bk

スコア99

title CHANGED
File without changes
body CHANGED
@@ -8,9 +8,9 @@
8
8
  これをマルチバイトであってもstring型で取得できる様に動きを変える事は出来ないでしょうか?
9
9
  現状は後続処理でunicode型の場合は"encode("cp932")する"みたいな変換ロジックを入れざるを得ない状況です。
10
10
  ```lang-xml
11
- <xml>
11
+ <Test>
12
12
  <Hoge>日本語</Hoge>
13
- </xml>
13
+ </Test>
14
14
  ```
15
15
  ```lang-python
16
16
  import xml.etree.ElementTree as ET

7

xmlサンプルを追記

2015/03/03 09:31

投稿

panda_bk
panda_bk

スコア99

title CHANGED
File without changes
body CHANGED
@@ -7,6 +7,11 @@
7
7
 
8
8
  これをマルチバイトであってもstring型で取得できる様に動きを変える事は出来ないでしょうか?
9
9
  現状は後続処理でunicode型の場合は"encode("cp932")する"みたいな変換ロジックを入れざるを得ない状況です。
10
+ ```lang-xml
11
+ <xml>
12
+ <Hoge>日本語</Hoge>
13
+ </xml>
14
+ ```
10
15
  ```lang-python
11
16
  import xml.etree.ElementTree as ET
12
17
  root = ET.fromstring(xml)

6

コードが一部冗長だったので修正

2015/03/03 09:30

投稿

panda_bk
panda_bk

スコア99

title CHANGED
File without changes
body CHANGED
@@ -10,6 +10,5 @@
10
10
  ```lang-python
11
11
  import xml.etree.ElementTree as ET
12
12
  root = ET.fromstring(xml)
13
- root.findtext(".//Hoge")
14
13
  text = root.findtext(".//Hoge")
15
14
  ```

5

タイトル変更

2015/02/27 12:49

投稿

panda_bk
panda_bk

スコア99

title CHANGED
@@ -1,1 +1,1 @@
1
- ElementTreeでマルチバイト文字を扱う方法
1
+ ElementTreeでマルチバイト文字をスマートに扱う方法
body CHANGED
File without changes

4

改訂

2015/02/27 12:48

投稿

panda_bk
panda_bk

スコア99

title CHANGED
File without changes
body CHANGED
@@ -6,7 +6,7 @@
6
6
  日本語等のマルチバイト文字が含まれる場合unicode型に、そうでない場合string型に自動変換されている様です。
7
7
 
8
8
  これをマルチバイトであってもstring型で取得できる様に動きを変える事は出来ないでしょうか?
9
- 現状は後続処理でunicode型の場合はencode("cp932")みたいな変換ロジックを入れざるを得ない状況です。
9
+ 現状は後続処理でunicode型の場合は"encode("cp932")する"みたいな変換ロジックを入れざるを得ない状況です。
10
10
  ```lang-python
11
11
  import xml.etree.ElementTree as ET
12
12
  root = ET.fromstring(xml)

3

改訂

2015/02/27 12:44

投稿

panda_bk
panda_bk

スコア99

title CHANGED
File without changes
body CHANGED
@@ -3,7 +3,7 @@
3
3
  xml.etree.ElementTreeを使ってXMLパースをしたいと思っています。
4
4
 
5
5
  以下のコードでxmlの"Hoge"タグ要素値を取得した場合、text変数の型が、
6
- 日本語等のマルチバイトが含まれる場合unicode型に、シングルバイトstring型に自動変換されている様です。
6
+ 日本語等のマルチバイト文字が含まれる場合unicode型に、そうでい場合string型に自動変換されている様です。
7
7
 
8
8
  これをマルチバイトであってもstring型で取得できる様に動きを変える事は出来ないでしょうか?
9
9
  現状は後続処理でunicode型の場合はencode("cp932")みたいな変換ロジックを入れざるを得ない状況です。

2

改訂

2015/02/27 12:43

投稿

panda_bk
panda_bk

スコア99

title CHANGED
File without changes
body CHANGED
@@ -6,7 +6,7 @@
6
6
  日本語等のマルチバイトが含まれる場合unicode型に、シングルバイトならstring型に自動変換されている様です。
7
7
 
8
8
  これをマルチバイトであってもstring型で取得できる様に動きを変える事は出来ないでしょうか?
9
- この動きの為、現状は後続処理でunicode型の場合はencode("cp932")みたいな変換ロジックを入れざるを得ない状況です。
9
+ 現状は後続処理でunicode型の場合はencode("cp932")みたいな変換ロジックを入れざるを得ない状況です。
10
10
  ```lang-python
11
11
  import xml.etree.ElementTree as ET
12
12
  root = ET.fromstring(xml)

1

タイトル変更

2015/02/27 12:42

投稿

panda_bk
panda_bk

スコア99

title CHANGED
@@ -1,1 +1,1 @@
1
- cElementTreeでマルチバイト文字を扱う方法
1
+ ElementTreeでマルチバイト文字を扱う方法
body CHANGED
File without changes