Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!
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