MATLAB Answers

xmlファイルのタグ要素の抽出

34 ビュー (過去 30 日間)
Shinij Kumagai
Shinij Kumagai 2020 年 9 月 23 日
コメント済み: Shinij Kumagai 2020 年 9 月 26 日
以前の質問が上手く反映されていなかったので、再度、投稿させていただきました。 下記XMLファイルの ChNameJp~</ChNameJp>だけを読み込んでリストを作りたいです。 下記URLを参考にしたのですが、うまく、読み込むことができませんでした。 https://jp.mathworks.com/help/matlab/import_export/importing-xml-documents.html?s_tid=srchtitle ご教授いただけると幸いです。 version="1.0" ? Version="1.0.0" Min="112" No="1" No>1</No Protect>False</Protect ChNameJp>AAAA</ChNameJp Comment</Comment> /Ch No="2" No>2</No Protect>False</Protect ChNameJp>BBBB</ChNameJp Comment</Comment> /Ch /Voltage Min="4" No="1" No>1</No Protect>False</Protect ChNameJp>CCCC</ChNameJp Comment</Comment> /Ch /Frequency Min="0" Use="False" Boudrate="0" No="1" No>1</No Protect>False</Protect ChNameJp>1=A1_0</ChNameJp Commentコント</Comment> /Ch No="2" No>2</No Protect>False</Protect ChNameJp</ChNameJp> Comment</Comment> /Ch /TTT1 /Setting
  3 件のコメント
michio
michio 2020 年 9 月 24 日
ファイルを添付頂きありがとうございます。以下の回答に記載したのコードでは Living.txt で一部 /Ch で閉じられていない部分があったので修正して使用しました。

サインインしてコメントする。

採用された回答

michio
michio 2020 年 9 月 24 日
まずは参考まで、R2020b で使える readstruct という関数で xml ファイルを処理しやすいのでもし使用できる環境でしたらバージョンアップも検討ください。
>> t = readstruct('Living.txt','FileType','xml')
t =
フィールドをもつ struct:
VersionAttribute: "1.0.0"
fruits: [1×1 struct]
Meat: [1×1 struct]
Veg: [1×1 struct]
house: [1×1 struct]
>> struct2table(t.fruits.Ch)
ans =
3×7 table
NoAttribute No UnitComment Protect ChNameJp ChNameEn Comment
___________ __ ___________ _______ ________ ________ _______
1 1 "青森" "False" "Apple" "Apple" "赤"
2 2 "秋田" "False" "Banana" "Banana" "黄"
3 3 "山梨" "False" "Peach" "Peach" "Peach"
>> struct2table(t.Meat.Ch)
ans =
3×7 table
NoAttribute No UnitComment Protect ChNameJp ChNameEn Comment
___________ __ ___________ _______ _________ _________ _______
1 1 "熊本" "False" "Basashi" "Basashi" "赤"
2 2 "富士" "False" "Basashi" "Basashi" "赤"
5 5 "NA" "" "" "" ""
>> struct2table(t.Veg.Ch)
ans =
1×7 table
NoAttribute No UnitComment Protect ChNameJp ChNameEn Comment
___________ __ ___________ _______ ________ ________ _______
1 1 "香川" "False" "1R=6K" "6K" "緑"
>> struct2table(t.house.Ch)
ans =
2×8 table
NoAttribute No Comment1 UnitComment Protect ChNameJp ChNameEn Comment
___________ __ ________ ___________ _______ ________ ________ _______
1 1 "緑2" "鹿児島" "False" "2R=5K" "5K" "緑"
2 2 "緑2" "北海道" "False" "1R=5K" "5K" "緑"
  5 件のコメント
Shinij Kumagai
Shinij Kumagai 2020 年 9 月 26 日
ありがとうございます。無事に実行できました。プログラムの処理時間も大変早く、満足しています。大変、助かりました。今後とも、よろしくお願いします。

サインインしてコメントする。

その他の回答 (0 件)

タグ

製品


リリース

R2015a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!