2011-05-19

[C#] XMLプログラミング ~XMLファイルの作成~

とりあえず、一番シンプルで直感的なDOMツリーによる作成方法を以下に示します。

            XmlDocument xmlDocument = new XmlDocument();

            XmlElement root = xmlDocument.CreateElement("root");
            xmlDocument.AppendChild(root);

            //1つめのitemエレメント
            XmlElement item_elem = xmlDocument.CreateElement("item");
            item_elem.SetAttribute("id", "1");
            //item_elem.Value = "直接値を入れてみる"; //これはできません
            root.AppendChild(item_elem);
            
            XmlElement item_elem2 = xmlDocument.CreateElement("item");
            XmlNode name_node = xmlDocument.CreateNode(XmlNodeType.Text, "", "");
            name_node.Value = "値を入れる";
            item_elem2.AppendChild(name_node);
            root.AppendChild(item_elem2);
            xmlDocument.Save("c:\\temp\\test.xml");

XmlElement とXmlNode の使い分けがわかりにくいかもしれませんが、属性を持つようなノードについてはXmlElement を使ってください。またノードの値については、XmlElement に直接設定することはできません。上記のように、XmlNode に値をいれて子要素としてください。「値も1つのテキストノードである」と考えると理解しやすいと思います。

2011-05-17

Picasaへ写真を投稿する

以前の、GooglePicasa APIを試してみたの続編で、JavaでPicasaに写真をアップロードするサンプルです。
PicasawebService myService = new PicasawebService("example");
myService.setUserCredentials("<ここにユーザID>", "<ここにパスワード>");

URL albumPostUrl = new URL("http://picasaweb.google.com/data/feed/api/user/<ここにユーザID>/albumid/<ここにアルバムID>");
PhotoEntry myPhoto = new PhotoEntry();
myPhoto.setTitle(new PlainTextConstruct("ファイル名"));
myPhoto.setDescription(new PlainTextConstruct("タイトル"));
myPhoto.setClient("クライアント名");//ちょっとここは不明

MediaFileSource myMedia = new MediaFileSource(new File("C:\\temp\\kiku.jpg"), "image/jpeg");
myPhoto.setMediaSource(myMedia);

PhotoEntry returnedPhoto = myService.insert(albumPostUrl, myPhoto);

最後のreturnedPhoto には、アップしたファイルのURLなどが格納されています。