xmlファイルのタグ要素の抽出
조회 수: 13 (최근 30일)
이전 댓글 표시
以前の質問が上手く反映されていなかったので、再度、投稿させていただきました。 下記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
2020년 9월 24일
ファイルを添付頂きありがとうございます。以下の回答に記載したのコードでは Living.txt で一部 /Ch で閉じられていない部分があったので修正して使用しました。
채택된 답변
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
michio
2020년 9월 25일
xml2struct 関数は以下からダウンロードして R2015aSP1 でも使えるのでぜひ試してみてください。
構造体として xml ファイルの内容を採ってきますので、そこから ChNameJp に該当する情報を抜き出す作業が必要ですが、getElementByTagName で操作するより楽だと思いご紹介いたしました。
どうしても getElementsByTagName で・・という事であれば試してみますが少し大変そうでしたので・・。すいません。
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 JSON 形式에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!