AtomPubでlivedoorブログに記事を投稿
- AtomPubを使ってlivedoorのブログに記事を投稿する方法について困っています。
- 記事の続きの部分が投稿できないソースコードを試しましたが、エラーが発生しました。
- livedoorのAtomPubのWikiを参考にしましたが、うまくいきません。どうすればいいでしょうか?
- ベストアンサー
AtomPubでlivedoorブログに記事を投稿
AtomPubを使ってlivedoorのブログに記事を投稿するこのソースコードで記事前文のみは投稿出来るんですが、 記事の続きの部分が投稿出来なくて困っています。 このソースコードでは「記事前文」のみを投稿出来ました。 <?xml version=1.0 encoding=utf-8?> <entry xmlns=http://www.w3.org/2005/Atom> <title>テストタイトル</title> <content type=text/plain> テストコンテンツ </content> </entry> 次に「記事前文」と「記事の続き」を投稿するこのソースコードでは投稿出来ませんでした。 <?xml version=1.0 encoding=utf-8?> <entry xmlns=http://www.w3.org/2005/Atom> <title>テストタイトル</title> <blogcms:source> <blogcms:body><![CDATA[テスト記事前文]]></blogcms:body> <blogcms:more><![CDATA[テスト記事の続き]]></blogcms:more> </blogcms:source> </entry> 返ってきたエラーコードは... application/atom+xml <?xml version="1.0" encoding="utf-8"?> <error>:1: namespace error : Namespace prefix blogcms on source is not defined "http://www.w3.org/2005/Ato"><title>テストタイトル</title><blogcms:source ^ :1: namespace error : Namespace prefix blogcms on body is not defined .org/2005/Ato"><title>テストタイトル</title><blogcms:source><blogcms:body ^ :1: namespace error : Namespace prefix blogcms on more is not defined urce><blogcms:body><![CDATA[テスト記事前文]]></blogcms:body><blogcms:more ^ at /usr/local/lib/perl5/site_perl/5.8.8/XML/Atom/Thing.pm line 28</error> livedoorのAtomPubのWiki『http://wiki.livedoor.jp/staff/d/API/AtomPub』を見て上のようにしたのですけれどうまく行きませんorz どうすればいいのでしょうか?お願いします。必要であれば全てのソースコードを載せます。(投稿文字数制限があるので全ては書き込めれませんでした。)
- 20081217
- お礼率55% (51/92)
- Java
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
できるかどうか確認してないが、 <entry xmlns="http://www.w3.org/2005/Atom" xmlns:blogcms="http://blogcms.jp/-/spec/atompub/1.0/" > (省略) </entry> ってな感じで、ちゃんとblogcms名前空間接頭辞に対する名前空間宣言をしておかないと、 blogcms:sourceとかblogcms:bodyとかいうQNameは使えない、ってエラーメッセージでは言ってる。
関連するQ&A
- CSSレイアウトで作ったサイドバーの下に隙間ができてしまいます。
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>無題ドキュメント</title> <style type="text/css"> <!-- body { margin: 0px; background-color: #FFFFFF; } #base { width: 780px; } #base p { margin: 0px; } #headder { background-color: #FF6600; height: 100px; width: 780px; } #main { background-color: #00FF00; width: 680px; float: left; } #side { background-color: #FFFF00; width: 100px; float: left; } #footer { background-color: #00FFFF; clear: both; height: 100px; width: 780px; } --> </style> </head> <body> <div id="base"> <div id="headder"> <p>ヘッダー</p> </div> <div id="main"> <p>メイン</p> <p>文章</p> <p>文章</p> <p>文章</p> <p>文章</p> </div> <div id="side"> <p>メニュー</p> <p>メニュー</p> <p>メニュー</p> </div> <div id="footer"> <p>フッター</p> </div> </div> </body> </html>
- 締切済み
- HTML
- ホームページビルダー でアフィリエイトのサイト
ビルダーでアフィリエイトのサイトを作りたいのですが ページに楽天からのテンプレート貼り付けしたのですが ここからやり方がわかりません ★★★ ここにアフィリエイト用の画像のソースを入れる ★★★<BR> <BR> </td><BR> </tr><BR> <tr><BR> <td><font size="-1"><BR> <BR> ★★★ ここにアフィリエイト用のテキストリンクのソースを入れる ★★★<BR> <br><BR> ★★★ ここに紹介文を入れる ★★★<BR> <br> はりつけたあとどうしたらいいのですか?
- ベストアンサー
- ホームページ作成ソフト
- サニタイジング化されてしまったクォーテーションの復活
Javaで掲示板を作成しております。 入力された内容をタグがあれば正規表現によりサニタイジング化しています。 <font size="5" color="red">TEST"test"</font> → <font size="5" color="red">TEST"test"</font> 許可したタグは復活させています。 → <font size="5" color="red">TEST"test"</font> ここで質問なのですが、 「"5"」と「"red"」のダブルクォーテーションを 復活させて「"5"」と「"red"」となるように、 また、「"test"」は復活させないようにするにはどういう方法が御座いますでしょうか? できれば、 <font size="5" color="red">TEST1"test1"</font> <font size="6" color="blue">TEST2"test2"</font> <font size="7" color="yellow">TEST3"test3"</font> がまとめて置換できればと思います。 宜しく御願いいたします。
- ベストアンサー
- Java
- defineの出力先で文字化け
define('○○','<a href="http://www.goo.ne.jp" target="_blank">Goo</a>'); とすると出力先のソースで <a href="http://www.goo.ne.jp" target="_blank">○○</a> となってしまい <a href="http://www.goo.ne.jp" target="_blank">Goo</a> がそのままの形で表示されてしまいます。 どうしてこうなるのでしょうか。
- ベストアンサー
- PHP
- XMLReaderから取り出したデータのソート
いつもお世話になっております。 表題の件で良いサンプルプログラムが見つからず、質問に至りました。 下記のようなXMLデータがあるとして、このnewsに付加されているidの順にソートをするにはどうすればよいでしょうか? sample.xml <topics> <news id="1"> <head><![CDATA[<a href="#">test1</a>]]><head> <body><![CDATA[test1]]></body> </news> <news id="3"> <head><![CDATA[<a href="#">test3</a>]]><head> <body><![CDATA[test3]]></body> </news> <news id="2"> <head><![CDATA[<a href="#">test2</a>]]><head> <body><![CDATA[test2]]></body> </news> </topics> 以上、よろしくお願いいたします。
- ベストアンサー
- PHP
- imode入力モードの初期設定
教えて頂きたいことがあります。 imodeで、テキストBOXの初期設定を数値や、英数値に したいのですが、色々調べた結果2種類あることが分かりました。 istyle="4" -wap-input-format:"*<ja:en>";" 今回、XHTMLで作成することになったのですが、以下HTMLを 表示した場合に、istyleの方のみ数値が初期設定になります。 何故-wap・・・ が適用されず、istyleが適用されるのでしょうか。 ちなみに、テストした携帯はSH903i、P902is です。 <?xml version="1.0" encoding="Shift_JIS" ?> <!DOCTYPE html PUBLIC "-//i-mode group (ja)//DTD XHTML i-XHTML(Locale/Ver.=ja/2.0) 1.0//EN" "i-xhtml_4ja_10.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <title>タイトル</title> <style type="text/css"></style> </head> <body style=" color:#000;"> <form action="" method="POST"> これ出てる?<br /> <input type="text" name="aaa" value="" style="-wap-input-format:"*<ja:n> ";" /> <input type="text" style="-wap-input-format:"*<ja:en>";" /> <input type="text" istyle="4" /> </form> </body> </html> よろしくお願いします。
- ベストアンサー
- HTML
- 特殊記号が勝手にエスケープされてしまう
Windows2000 ServerにおいてVBScriptとMicrosoft.XMLDOMを用いてASPスクリプトを作成しています。 XMLで特殊文字<,>,",',&を扱う際には<,>,",'に置換しなくてはならない事はわかったんですが、 実際にReplaceすると例えば<が&lt;になってしまいます。 置換する順番を変えてもこうなるのでおかしいと重い、&への置換を止めてもです。 しかもこれは読み出すと何事も無かったかのように&lt;が<へと戻っています。 試しに置換を全く行わない状態で 「テスト&'>"」という文字列を保存してみると、 保存先ファイルの中では「テスト&'>"」という状態になっていました。 恐らく&,<,>,"が勝手に置換され、読み出される時には元に戻す処理が行われていると思うんですが、これがどの部分で行われているのかがよくわかりません。 JavaScriptで読み出した際にも同様に復元されていたようなので、MSXMLの仕様なのかなと思うんですが、それを裏付ける資料を見つける事もできませんでした。 XMLにおける特殊記号の扱いについて書いているサイトにも記述が見つからなかったので、もしかしたら凄く基本的な事だったりおかしな質問だったりするのかもしれませんが、ご存知の方がいらっしゃいましたら是非ご教授願いたいです。 参考URLだけでも良いですのでどうかよろしくお願いします。
- ベストアンサー
- XML
- こんにちは。PHPとMySQLで自作ブログを作ろうと試みているのですが
こんにちは。PHPとMySQLで自作ブログを作ろうと試みているのですが、 セキュリティを意識した中で、HTMLタグの取り扱いに困っております。 プログラム全体の流れとしては、 記事投稿ページ→MySQLに保存→ブログ記事として出力 といった感じです。 例えば、記事投稿ページの<textarea>の中で、 <b>テストテスト</b>といった文があったとします。 XSSを防ぐために、htmlspecialchars()でエスケープすると、 MySQLには、<b>テストテスト</b> と保存されます。 MySQLから記事に出力したときに、太字となった「テストテスト」ではなく、 「<b>テストテスト</b>」とそのまま表示されてしまいます。 記事の出力時に、html_entity_decode()で戻してやればいいかとも思いましたが、 それでは、そもそもXSSを防げない気がします。 一般のブログサービスでは、どうやってデータベースにHTMLを保存しているのでしょうか? 解決するいい方法があればどなたか教えてください。
- ベストアンサー
- PHP
- LivedoorブログへAtomで投稿できない
★質問:LivedoorブログでAtomでブログ記事を投稿するツールを作っているがエラーになります。 ★環境:Java(jdk1.6.0_26) Eclipse3.6 OS:Windows7 Java初心者です。 ネットから拾ってきたプログラムを参考にLivedoorブログへ記事を投稿する ツールを作っています。 以下のようなソースを書きました。 ★ソース package ROME; import java.net.URL; import java.text.DateFormat; import java.text.ParseException; import java.util.Hashtable; import org.apache.xmlrpc.client.XmlRpcClient; import org.apache.xmlrpc.client.XmlRpcClientConfigImpl; import org.apache.xmlrpc.XmlRpcException; import java.net.MalformedURLException; public class AtomPost { public static void main(String[] args) throws XmlRpcException, MalformedURLException, ParseException { String aServerURL = "http://cms.blog.livedoor.com/atom/"; String aTitle = "テスト"; String aHtml = "本文テスト"; String ablogId = "●●●●●●";//LivedoorブログID(数字7桁) String aAccount = "●●●●●●";//Livedoorブログアカウント String aPassWord = "●●●●●●";//パスワード Post(aServerURL, aTitle, aHtml, ablogId, aAccount, aPassWord); } public static void Post(String aServerURL, String aTitle, String aHtml, String ablogId, String aAccount, String aPassWord) throws XmlRpcException, MalformedURLException, ParseException { boolean ret = false; XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl(); config.setServerURL(new URL(aServerURL)); XmlRpcClient client = new XmlRpcClient(); client.setConfig(config); // 新規投稿の内容 ※HashMapでもイイと思う Hashtable<String, Comparable> hash = new Hashtable(); hash.put("title", aTitle); hash.put("description", aHtml); hash.put("dateCreated", DateFormat.getDateInstance() .parse("2011/08/07")); hash.put("mt_convert_breaks", true); // 本文中の改行をbrタグで反映 hash.put("mt_allow_comments", true); // コメントを受け付けるか hash.put("mt_allow_pings", true); // トラックバックを受け付けるか hash.put("mt_text_more", "続きを読むの部分です"); Object[] params = new Object[5]; params[0] = ablogId; // blogId params[1] = aAccount; params[2] = aPassWord; params[3] = hash; params[4] = true; // publish(trueで公開, falseで下書) Object result = client.execute("metaWeblog.newPost", params); // 新規投稿した記事番号が返る System.out.println("記事番号:" + result + "です。"); } } しかし、上記ソースを実行すると、以下のようなエラーがでます。 Exception in thread "main" java.lang.IncompatibleClassChangeError: Implementing class at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:621) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) at java.net.URLClassLoader.access$100(URLClassLoader.java:56) at java.net.URLClassLoader$1.run(URLClassLoader.java:195) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) at ROME.AtomPost.Post(AtomPost.java:34) at ROME.AtomPost.main(AtomPost.java:22) ★具体的な質問 一体、何が間違っているのでしょうか? 可能性としては… 1.環境が間違っている 例えば、必要なライブラリが足りない等 2.ソースが間違っている。 3.そもそもLivedoorでこの方法ではブログは投稿できない。 と思うのですが、初心者のため、どっちなのか?そしてどうすればいいのか分かりません。 すみませんが、ご教授よろしくお願いします。
- 締切済み
- Java
- ブログの各記事の単独ページでブログタイトルをクリックしたら、トップページへ戻るようにリンクを設定したいです。
以前にこちらで「ブログタイトルをクリックしたら、トップページへ戻るようにリンクを設定したい」と質問し、トップページではブログタイトルをクリックしたらトップページへ戻るようにはなったのですが、各記事の単独ページではブログタイトルがクリック出来ず、トップページへ戻る事が出来ません。 どう書き換えればよいのでしょうか? ちなみにその時は、 <h1 class='title'><b:include name='title'/></h1> を、 <h1 class='title'><a href='ブログのタイトル'><b:include name='title'/></a></h1> へ変更しました。 ほとんど知識がないので、噛み砕いてご回答頂けると助かります。 ブログはGoogle Bloggerです。 宜しくお願いします。 以下ソース(の関連していると思われる部分)です。 --------------------------- data:sourceUrl + "\"); " + "background-position: " + data:backgroundPositionStyleStr + "; " + data:widthStyleStr + "min-height: " + data:height + "px;" + "_height: " + data:height + "px;" + "background-repeat: no-repeat; "' id='header-inner'> <div class='titlewrapper' style='background: transparent'> <h1 class='title' style='background: transparent; border-width: 0px'> <b:include name='title'/> </h1> </div> <b:include name='description'/> </div> </b:if> <b:else/> <!--No header image --> <div id='header-inner'> <div class='titlewrapper'> <h1 class='title'> <a href='/'><b:include name='title'/></a> </h1> </div> <b:include name='description'/> </div> </b:if> </b:includable> </b:widget> </b:section> </div>
- ベストアンサー
- HTML
お礼
さっそく回答していただいて、ありがとうございます。 上手く投稿出来ました、感謝です!