Java
私のウェブホスティングサイトからのxmlファイルを解析してこのファイルを更新する小さなプログラムを書くことは可能ですか?または、そうするためのより良い代替手段はありますか?ファイルは10分ごとに約10行のコードで更新する必要があるため、毎回書き出す必要はありません。
2 に答える
あなたは小さなjavaプログラムを書くことができます。ところで、あなたはより大きなものを書くことができます:)。あなたはあなたが望むどんな言語を使ってもプログラムを書くことができます。Javaを含みます。任意の言語で記述されたプログラムは、XMLを解析できます。
さて、今、私たちは問題に到達しました。WebサイトからXMLを解析したいと言うときはどういう意味ですか?あなたのウェブサイトはXMLをダウンロードすることを可能にするURLを提供していますか?この場合、ダウンロードして(たとえば、HTTP GETメソッドを使用して)解析できます。
次の問題は、サイトのXMLを更新する方法です。そのような機能をサイト自体で提供する必要があります(たとえば、XMLを受信して保存できるサービスを実装します。たとえば、HTTPGETを介して。
完了したら、HTTP GETを使用してファイルをダウンロードし、それを解析して新しいファイルを作成し、HTTPPOSTを使用してサイトに送り返す本当に小さなJavaプログラムを作成できます。
私はあなたのサーバーでこのコードを実行することを調査します。アップデートとは何ですか?サーバー上にないデータを使用していますか?これはJavaで簡単に行うことができますが、より良い答えを得るには、より詳細な情報が必要です。
OK、あなたのアイデアはあなたのウェブホスティングがあなたにhttp PUTをさせてくれるなら、あなたはGETを使ってファイルを手に入れ、例えばDOMを使ってそれを修正し、そしてそれを元に戻すことができれば大丈夫です。より多くのサーバーサイドスクリプトを実行し、その最後に更新を書き込むことをお勧めします。たとえば、フラットファイルの代わりにリレーショナルデータベースを使用できます。この場合、他の回答が提案されているようにPOSTを受け入れるサーバーサイドスクリプトを作成することをお勧めします。
ここにあなたのための小さな例を置きました:http://jcable.users.sourceforge.net/scores.php
このWebサイトには3つのファイルがあります。
スコア-更新されるテキストファイル。score.php-現在のスコアを表示するスクリプトadd.php-現在のスコアを更新するスクリプト。
score.phpは次のようになります。
<html>
<body>
The current score is <?php readfile("scores"); ?>
</body>
</html>
add.phpは次のようになります。
<?php
if(isset($_POST["score"])) {
$fh = fopen("scores", 'w') or die("can't open file");
fwrite($fh, $_POST["score"]);
fclose($fh);
}
else
{
?>
<HTML>
<BODY>
<FORM action="add.php" method="POST">
New Score: <INPUT type="text" name="score"/>
</FORM>
</BODY>
</HTML>
<?php
}?>
add.phpを取得すると、フォームが表示されます。しかし、あなたのプログラムがそれを投稿として呼んでも、気になりません。これがあなたにいくつかのアイデアを与えることを願っています-それは私が考えることができる最も単純なウェブアプリであり、永続的なサーバー側のデータを持っています。xmlやjsonなどの複雑さを追加できますが、原則はそこにあります。