xmlファイルのタグ要素の抽出
    5 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    Shinij Kumagai
 il 23 Set 2020
  
    
    
    
    
    Commentato: Shinij Kumagai
 il 26 Set 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 Commenti
  michio
    
 il 24 Set 2020
				ファイルを添付頂きありがとうございます。以下の回答に記載したのコードでは Living.txt で一部 /Ch で閉じられていない部分があったので修正して使用しました。
Risposta accettata
  michio
    
 il 24 Set 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 Commenti
  michio
    
 il 25 Set 2020
				xml2struct 関数は以下からダウンロードして R2015aSP1 でも使えるのでぜひ試してみてください。
構造体として xml ファイルの内容を採ってきますので、そこから ChNameJp に該当する情報を抜き出す作業が必要ですが、getElementByTagName で操作するより楽だと思いご紹介いたしました。
どうしても getElementsByTagName で・・という事であれば試してみますが少し大変そうでしたので・・。すいません。
Più risposte (0)
Vedere anche
Categorie
				Scopri di più su 構造化データと XML ドキュメント in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!