概要

  • XPathを使ってXMLを読む。

サンプルXML

ソース

  • dumpCXF.pl
    すべてを展開すべてを収束
      1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
     12
     13
     14
     15
     16
     17
     18
     19
     20
     21
     22
     23
     24
     25
     26
     27
     28
     29
     30
     31
    
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    -
    |
    |
    |
    |
    -
    |
    |
    |
    !
    |
    !
     
     
    
    #!/usr/local/bin/perl
     
    # CxF file からスペクトルの値を抜き出して表示
    # by take-ash
    # 2006.01.13
    # 注) 文字コード:UTF-8N、改行:LF で、このperlスクリプトを保存すること。
     
    use strict;
    use utf8;
    use XML::XPath;
    #use Data::Dump qw(dump);
     
    my $xp = XML::XPath->new( filename => 'Monitor_6500K.cxf' );
    # print dump( $xp );
     
    my $nodeset_samples = $xp->find( '/CXF/SampleSet/Sample' ); 
     
    foreach my $node_sample ( $nodeset_samples->get_nodelist() ) {
        my $name = $xp->findvalue( './Name', $node_sample );
        printf( "Name:\t%s\n", $name );
     
        my $nodeset_values = $xp->find( './SampleAttribute/Spectrum/Value', $node_sample );
        foreach my $node_value ( $nodeset_values->get_nodelist() ) {
            my $name = $xp->findvalue( './@Name', $node_value );
            my $value = $xp->findvalue( '.', $node_value );
            printf( "%s\t%s\n", $name, $value );
        }
        print "\n";
    }
     
    #EOF
    

XPathモジュールのインストール

ppm install XML-XPath

DTD を読ませない

  • DTD を読ませないようにするには、LWP を無効化したパーサを指定する。
    すべてを展開すべてを収束
      1
      2
    
     
     
    
    my $p = XML::Parser->new( NoLWP => 1 );
    my $xp = XML::XPath->new( parser => $p, filename => "a.xhtml" );
  • CxF Color Exchange Format

添付ファイル: fileMonitor_6500K.zip 1819件 [詳細]

リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Thu, 22 Feb 2018 15:28:37 JST (143d)