kumama go言語とかgolangとかGAEとかネットサービスとかその他色々・・・

16Nov/091

google go::xmlの読込み

っていうか思いっきり間違ってるかもだけど。

<?xml version="1.0" encoding="UTF-8"?>
<binchg version="1.0">
         <target></target>
         <patch>
                 <name>cpumodel is always 0x0e i386</name>
                 <org>0fb60569958700 83e80d 3c21</org>
                 <mod>0fb60569958700 31c040 3c21</mod>
         </patch>
         <patch>
                 <name>cpumodel is always 0x0f x86_64</name>
                 <org>0fb60566e24900</org>
                 <mod>b80f0000009090</mod>
         </patch>
 </binchg>

なxmlをgoで読み込みたい場合、

type Patch struct {
        Name string;
        Org string;
        Mod string;
}

type Binchg struct {
        Target string;
        Patch []Patch;
}

と、定義しておいて、

        var result Binchg;
        xml.Unmarshal( patch_file, &result ) ;

で、OKっぽい。type定義の変数名を大文字で始める事でpublic扱いになって、
同名のタグを読んでくれる模様。

と、いう事でバイナリパッチ君のソースosx用バイナリ


まー、CなりC++でも良いんだけど、
使いやすくて標準的なXMLのライブラリが無いからこういうところはgoの強みかと。
とはいえ諸々のライブラリをスタティックリンクする関係で実行オブジェクトが、
800k超えてるのがちょっと気になるといえば気になる。
同じ事をrubyだとこんな感じ

Filed under: golang Leave a comment
Comments (1) Trackbacks (1)
  1. 元ネタ&コメント、ありがとうございました。
    golang、なんかじわじわ良くなってきてますね。
    がんばっていきましょー。


Leave a comment