Free Trial

ウィークリーチャレンジ

トップになるためのスキルをお持ちですか? ウィークリーチャレンジを購読しましょう。ベストを尽くして問題を解決し、解決策を共有して、他のユーザーがどのように同じ問題に取り組んだのか確認しましょう。私たちも解答例を共有しています。

チャレンジ #43: XML 解析

SaoriG
Alteryx Alumni (Retired)

どこで興味深いチャレンジに遭遇するのか分からないものです。xml_brackets.png

 

以下は "XML Parsing for Beginners"という投稿に対する回答として投稿されました。

 

「私はある項目 (item) に関する情報を含むファイルを持っています(サンプルが以下にあります)。私の仕事は、item_identifier を特定の属性に関連付けるリストを生成することです(例えば、このサンプルから、以下の出力テーブルのようなものを作成します):

 

item_identifier | grade_level | subject | Depth of Knowledge | Bloom's Taxonomy | etc etc

 

つまり、基本的にはすべての<source><langstring>をタイトルとして、<taxon><entry>を値として持つテーブルです。 その後、少し複雑になりますが、<source><langstring>Standard に到達した後、すべての値を求めてください。」

 

DaisukeTsuchiya
パルサー

今年のWeekly Challengeは先週でおしまいなのかなと思っていたら出てきましたね。

「同じ名前で異なる値を持つ倍数と、すべての値を求めてください。」の意味が分からなくて英語サイトを見に行ってしまいました。「同じ名前で異なる値がでてきますが、すべての値を表示させてください。」の方がわかりやすいと思います。

それでは皆さん良いお年を。

スポイラ
最初皆目見当がつきませんでしたが、XMLパースのサンプルワークフローをみて、試行錯誤していたらできちゃいました。

キャプチャ.PNG
Tokimatsu
クエーサー

正規表現で頑張ってみました。

 

スポイラ
タグの入れ子状態を取り込むようにしたいですが、保存方法が微妙。Alteryxだとグラフ(チャートじゃないほう)は扱えないし、親子関係だと使いずらいし、横方向に階層の段数分列を作るのがまだ使えそうですが、納得いかない感じ。

challenge_jp_43.PNG

AkimasaKajitani
17 - Castor
17 - Castor

どうも年度末に投稿できてなかったみたいで・・・

 

スポイラ
実は先に英語版でやってたんですが、こんなやり方で良いのか・・・。本来のやり方ではない気がします。
クリップボード12.png
Qiu
20 - Arcturus
20 - Arcturus

@DaisukeTsuchiya  さんのやり方をパクしました。

 

gawa
15 - Aurora
15 - Aurora
スポイラ
gawa_0-1624607717240.png

 

XMLって何?というチンプンカンプンな状態だったので、早々に諦めてsolutionカンニングしました。。。が、なんか分かったような、分からんような・・・笑 業務でもときどきXML形式のデータがあるようなので、これを機会に自習しようと思いました。

ntakeda
ボリード

XMLというもの自体を知らなかったので、勉強になりました。

Yoshiro_Fujimori
オーロラ

XMLのツリー構造を地道にたどっていくため、XML Parseツールだけで対応しましたが、拡張性があるかというと自信ありません。

データ構造が固定的であればこれでよいような気もしますが。。

 

Solutionも見ましたが、RegExツールで"Normalize XML for Parsing"といっている処理の内容が理解できませんでした。

 

スポイラ
Yoshiro_Fujimori_0-1663632264732.png