回答編集履歴
5
f
answer
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
下記ではいかがでしょうか
|
2
|
-
※読み込むサンプルのxml
|
2
|
+
※読み込むサンプルのXMLファイル(sample.xml)
|
3
3
|
```xml
|
4
4
|
<Result>
|
5
5
|
<SubCodes>
|
@@ -14,6 +14,7 @@
|
|
14
14
|
</SubCodes>
|
15
15
|
</Result>
|
16
16
|
```
|
17
|
+
|
17
18
|
コード(内包表記なし)
|
18
19
|
```
|
19
20
|
import xml.etree.ElementTree as ET
|
4
修正
answer
CHANGED
@@ -1,5 +1,21 @@
|
|
1
1
|
下記ではいかがでしょうか
|
2
|
+
※読み込むサンプルのxml
|
3
|
+
```xml
|
4
|
+
<Result>
|
5
|
+
<SubCodes>
|
6
|
+
<SubCode code="item-code-red-s">
|
7
|
+
<Option name="カラー" value="red"/>
|
8
|
+
<Option name="サイズ" value="small"/>
|
9
|
+
</SubCode>
|
10
|
+
<SubCode code="item-code-red-m">
|
11
|
+
<Option name="カラー" value="red"/>
|
12
|
+
<Option name="サイズ" value="medium"/>
|
13
|
+
</SubCode>
|
14
|
+
</SubCodes>
|
15
|
+
</Result>
|
2
16
|
```
|
17
|
+
コード(内包表記なし)
|
18
|
+
```
|
3
19
|
import xml.etree.ElementTree as ET
|
4
20
|
|
5
21
|
with open("sample.xml", mode="r", encoding="utf-8") as f:
|
@@ -9,15 +25,26 @@
|
|
9
25
|
|
10
26
|
subcodes = result[0]
|
11
27
|
|
12
|
-
|
28
|
+
result_lst = []
|
13
29
|
|
30
|
+
for subcode in subcodes:
|
14
|
-
|
31
|
+
subcode_lst=[]
|
32
|
+
for option in subcode:
|
33
|
+
option_lst=[]
|
34
|
+
for attr in option.keys():
|
35
|
+
if attr in ["value", "name"]:
|
36
|
+
option_lst.append(option.attrib[attr])
|
37
|
+
subcode_lst.append(':'.join(option_lst))
|
38
|
+
result_lst.append("#".join(subcode_lst)+"="+subcode.attrib["code"])
|
15
39
|
|
16
|
-
dic = {'subcodes
|
40
|
+
dic = {'subcodes':'|'.join(result_lst)}
|
17
|
-
'#'.join(':'.join(option.attrib[attr] for attr in option.keys() if attr in ["name", "value"])
|
18
|
-
for option in subcode) + "=" + subcode.attrib["code"]
|
19
|
-
for subcode in subcodes))}
|
20
41
|
|
42
|
+
print(dic)
|
21
43
|
|
44
|
+
|
45
|
+
```
|
46
|
+
|
22
|
-
|
47
|
+
出力結果
|
48
|
+
```
|
49
|
+
>> {'subcodes:': 'カラー:red#サイズ:small=item-code-red-s|カラー:red#サイズ:medium=item-code-red-m'}
|
23
50
|
```
|
3
修正
answer
CHANGED
@@ -14,8 +14,8 @@
|
|
14
14
|
subcodes = result[0]
|
15
15
|
|
16
16
|
dic = {'subcodes:': ('|'.join(
|
17
|
-
'#'.join(':'.join(option.attrib[attr] for attr in option.keys())
|
17
|
+
'#'.join(':'.join(option.attrib[attr] for attr in option.keys() if attr in ["name", "value"])
|
18
|
-
|
18
|
+
for option in subcode) + "=" + subcode.attrib["code"]
|
19
19
|
for subcode in subcodes))}
|
20
20
|
|
21
21
|
|
2
修正
answer
CHANGED
@@ -9,10 +9,15 @@
|
|
9
9
|
|
10
10
|
subcodes = result[0]
|
11
11
|
|
12
|
+
result = ET.fromstring(xml_data)
|
13
|
+
|
14
|
+
subcodes = result[0]
|
15
|
+
|
12
16
|
dic = {'subcodes:': ('|'.join(
|
13
|
-
'#'.join(
|
17
|
+
'#'.join(':'.join(option.attrib[attr] for attr in option.keys())
|
14
18
|
for option in subcode) + "=" + subcode.attrib["code"]
|
15
19
|
for subcode in subcodes))}
|
16
20
|
|
21
|
+
|
17
22
|
print(dic)
|
18
23
|
```
|
1
修正
answer
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
下記ではいかがでしょうか
|
2
2
|
```
|
3
|
+
import xml.etree.ElementTree as ET
|
4
|
+
|
3
5
|
with open("sample.xml", mode="r", encoding="utf-8") as f:
|
4
6
|
xml_data = f.read()
|
5
7
|
|
6
|
-
import xml.etree.ElementTree as ET
|
7
|
-
|
8
8
|
result = ET.fromstring(xml_data)
|
9
9
|
|
10
10
|
subcodes = result[0]
|
11
|
+
|
11
|
-
dic = {'subcodes':('|'.join(
|
12
|
+
dic = {'subcodes:': ('|'.join(
|
12
13
|
'#'.join(f"{option.attrib['name']}:{option.attrib['value']}"
|
13
14
|
for option in subcode) + "=" + subcode.attrib["code"]
|
14
15
|
for subcode in subcodes))}
|