根据当前日期获取 XML 文件

发布于 2024-12-01 22:10:25 字数 294 浏览 0 评论 0原文

我对使用 javascript 解析 XML 数据非常陌生,所以如果我的问题有点简单,请原谅。

我正在使用标准 xmlHTTPRequest 使用 javascript 解析 XMl 文件中的数据。我从中提取 XML 数据的 URL 格式类似于:“http://example.com/abcyymmdd-data.xml”。 URL 的 (yymmdd) 部分代表日期,文件每天更新​​。我想在 url 中插入一段 javascript 代码来代替 yymmdd,以便每天解析一个新的 XML 文件。我怎样才能实现这个目标?

谢谢, 卡洛斯

I am very new to parsing XML data with javascript, so please excuse me if my question is a bit simple.

I am parsing data from an XMl file with javascript using a standard xmlHTTPRequest. The format of the URL that I am pulling the XML data from is something like: "http://example.com/abcyymmdd-data.xml". The (yymmdd) portion of the url represents the date and the files are updated daily. I would like to insert a javascript code in the url in place of yymmdd so that a new XML file is parsed each day. How might I achieve this?

Thanks,
Carlos

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

空气里的味道 2024-12-08 22:10:25

首先,要获取今天的日期,请使用:

var today = new Date;

要获取组件,请使用:

var date  = today.getDate();
var month = today.getMonth() + 1; // caveat, starts at 0
var year  = today.getFullYear();  // 4 numbers (e.g. 2011)

现在,您需要采用 yymmdd 格式。因此,您需要删除年份中的前两个数字,并在必要时在日期和月份前添加 0

function zeropad(number) {
    var str = number.toString(); // number to string

    return str.length === 1 // if length is 1
            ? '0' + str     // prepend a 0
            : str;          // otherwise return string without modification
}

然后:

var formatted = year.toString().substring(2) // only the string from the first two numbers and on
                 + zeropad(month)            // month with 0 prepended
                 + zeropad(date);            // date with 0 prepended

然后,在您的 XHR 中,使用:

xhr.open("GET", "http://example.com/abc" + formatted + "-data.xml", true);

First, to get today's date, use:

var today = new Date;

To get the components, use:

var date  = today.getDate();
var month = today.getMonth() + 1; // caveat, starts at 0
var year  = today.getFullYear();  // 4 numbers (e.g. 2011)

Now, you need it in the format yymmdd. So you need to remove the two first numbers from year, and prepend a 0 to date and month, if necessary.

function zeropad(number) {
    var str = number.toString(); // number to string

    return str.length === 1 // if length is 1
            ? '0' + str     // prepend a 0
            : str;          // otherwise return string without modification
}

And then:

var formatted = year.toString().substring(2) // only the string from the first two numbers and on
                 + zeropad(month)            // month with 0 prepended
                 + zeropad(date);            // date with 0 prepended

Then, in your XHR, use:

xhr.open("GET", "http://example.com/abc" + formatted + "-data.xml", true);
梦明 2024-12-08 22:10:25

您可以以 yymmdd 格式检索当前日期,例如:

var d = new Date();
var date_string = 
    d.getFullYear().toString().substring(2) +
    (d.getMonth () < 9 ? "0" : "") + (d.getMonth() + 1) +
    (d.getDate() < 10 ? "0" : "") + d.getDate();

JS Fiddle 上的示例。

You can retrieve the current date in yymmdd format like:

var d = new Date();
var date_string = 
    d.getFullYear().toString().substring(2) +
    (d.getMonth () < 9 ? "0" : "") + (d.getMonth() + 1) +
    (d.getDate() < 10 ? "0" : "") + d.getDate();

Example at JS Fiddle.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文