0

是否可以编写一个小Java程序来解析来自我的虚拟主机站点的 xml 文件并更新该文件?或者有更好的选择吗?我必须每 10 分钟更新一次文件,每行大约 10 行代码,所以我不想每次都写出来。

4

2 回答 2

1

你可以写一点java程序。顺便说一句,你可以写一个更大的一二:)。您可以使用任何您想要的语言编写程序。包括Java。用任何语言编写的程序都可以解析 XML。

好吧,现在我们解决了问题。当您说您希望从网站解析 XML 时,您的意思是什么?您的网站是否提供允许下载 XML 的 URL?在这种情况下,您可以下载它(例如使用 HTTP GET 方法)并解析。

下一个问题是如何更新站点上的 XML。您必须在站点本身上提供此类功能(例如,实现能够接收 XML 并存储它的服务。例如通过 HTTP GET。

完成后,您可以编写真正的小型 Java 程序,该程序使用 HTTP GET 下载文件、解析它、创建新文件并使用 HTTP POST 将其发送回站点。

于 2012-04-22T07:35:01.460 回答
0

我会调查在您的服务器上运行此代码。更新是什么?它是否使用不在您服务器上的数据?您可以在 Java 中轻松完成此操作,但需要更多细节才能获得更好的答案。

好的,如果您的虚拟主机允许您执行 http PUT,您的想法很好,您可以使用 GET 获取文件,修改它,例如使用 DOM,然后将它放回去。你可能更喜欢做更多的服务器端脚本并在最后编写更新,例如,它允许你使用关系数据库而不是平面文件。在这种情况下,编写一个服务器端脚本来接受 POST 作为建议的另一个答案是一个好主意。

我在这里为您举了一个小例子:http: //jcable.users.sourceforge.net/scores.php

这个网站上有三个文件:

分数 - 一个被更新的文本文件。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,它将向您显示表单。但是,如果您的程序将其称为帖子,则不会打扰。希望这能给你一些想法——它是我能想到的最简单的 Web 应用程序,它具有持久的服务器端数据。您可以添加复杂性 - xml 或 json 等,但原则是存在的。

于 2012-04-22T07:31:08.937 回答