Alteryxで「パース」の「XMLパース」のツールアイコンを利用しています。
XMLパースで一定以上の長さになるとエラーが発生します。
下記は<tr>タグと<td>タグを使ったシンプルなXMLの内容ですが、
文字列が一定より長くなるとXMLパースがうまくいかなくなる認識です。
ここでエラーが発生する理由と、対応策をご教示いただけましたらありがたく存じます。
●パースするデータの中身:うまく行く場合
<table class="changes"><tr><td>History_Column_01</td><td>内容01</td></tr><tr><td>History_Column_02</td><td>内容02</td></tr><tr><td>History_Column_03</td><td>内容03</td></tr><tr><td>History_Column_04</td></table>
●パースするデータの中身:うまく行かない場合
<table class="changes"><tr><td>History_Column_01</td><td>内容01</td></tr><tr><td>History_Column_02</td><td>内容02</td></tr><tr><td>History_Column_03</td><td>内容03</td></tr><tr><td>History_Column_04</td><td>内容04</td></tr><tr><td>History_Column_05</td><td>内容05</td></tr><tr><td>History_Column_06</td><td>内容06</td></tr><tr><td>History_Column_07</td><td>内容07</td></tr><tr><td>History_Column_08</td><td>内容08</td></tr><tr><td>History_Column_09</td><td>内容09</td></tr><tr><td>History_Column_10</td><td>内容10</td></tr></table>
なお、ここで「XMLエラーを無視して続行する」にチェックを入れると、
エラーが発生した以降のデータは切り捨てられる認識なので、
あくまで全てのデータを抽出したいと考えております。
よろしくお願いいたします。
●添付ファイル
Alteryx_test1.txt:XMLパースがうまくいく場合のデータ
Alteryx_test2.txt:XMLパースがうまくいかない場合のデータ
test_20211207.yxmd:検証用ワークフロー
解決済! 解決策の投稿を見る。
使用しているAlteryxのバージョンは「2020.4.5.12471」です。
よろしくお願いいたします。
WorkFlowを見させていただいたところ、データ入力ツールの設定で長さが254に設定されているため、文字が途中で切れており、それが原因でXMLパースがうまくいってないようです。
ですので、データ入力ツールの長さを十分長い値に設定することで、正常に全てのデータをXMLパースできるようになります。(下図では適当に、文字長さを254000にしています)
@gawa さんの言うとおりで、結果ウィンドウのワーニングメッセージとして表示されていますね・・・。
あと、データは閲覧ツールを接続することで全データの確認が可能ですので、おかしいな、と思ったら閲覧ツールでインプットデータを確認することをおすすめします。
切れている場合
※途中でぶちっと切れています
データ入力ツールの設定を変えた場合の結果
※ちゃんとテーブルタグで閉じられています
ご教示いただいた方法で、無事に解決できました。
データ入力ツールで長さが指定できるのは意識しておりませんでした。
ありがとうございました。