xmlファイルのタグ要素の抽出
13 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Shinij Kumagai
le 23 Sep 2020
Commenté : Shinij Kumagai
le 26 Sep 2020
以前の質問が上手く反映されていなかったので、再度、投稿させていただきました。 下記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 commentaires
michio
le 24 Sep 2020
ファイルを添付頂きありがとうございます。以下の回答に記載したのコードでは Living.txt で一部 /Ch で閉じられていない部分があったので修正して使用しました。
Réponse acceptée
michio
le 24 Sep 2020
まずは参考まで、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 commentaires
michio
le 25 Sep 2020
xml2struct 関数は以下からダウンロードして R2015aSP1 でも使えるのでぜひ試してみてください。
構造体として xml ファイルの内容を採ってきますので、そこから ChNameJp に該当する情報を抜き出す作業が必要ですが、getElementByTagName で操作するより楽だと思いご紹介いたしました。
どうしても getElementsByTagName で・・という事であれば試してみますが少し大変そうでしたので・・。すいません。
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur JSON 形式 dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!