1

如何在 HTML 网页上读取 XML 文件?

我只知道非常基本的 JavaScript。我正在尝试使用 XML 更改网站页脚中的值,因为我有 100 多个页面,每次更改页脚中的内容时,我都必须手动更改所有 100 页。这就是我想通过 XML 更改页脚链接的原因。

我希望我的 XML 链接值进入锚标签 href 属性:

<a href="here goes the url using xml">

此外,锚标签之间的网站名称也是:

<a href="here goes link value ">here goes the name of the url using xml</a>

我的 HTML 页面应如下所示:

<a href "here goes the url">here goes the name of the url using xml</a>
4

5 回答 5

1

如果您只想更改页脚并且在 100 页中使用,您可以这样做。制作一个页脚 html 页面并将其包含在每个页面中。这样,如果您需要对页脚进行任何更改,您将需要在 1 个地方进行。在jsp中你必须写

<jsp:include page="PageFooter.jsp" />

这个解决方案也可能有帮助 如何将一个 HTML 页面包含到另一个没有框架/iframe 的 HTML 页面中?

于 2012-12-29T06:44:31.420 回答
1

是的。您的服务器是否启用了 PHP?(大多数默认启用它。)JavaScript AJAX 可以做到这一点,但 PHP 将是一个更好的解决方案。

只需将其粘贴到您的网站中:

<a href="<?php include 'file.xml'; ?>">here goes the name of the url using xml</a>

将“file.xml”更改为将保存 URL 的任何文件。您也可以使用 .txt 甚至 .php 或 .html。每当 file.xml 中的 URL 发生更改时,它都会反映在您的所有页面中。

编辑:与其引用页脚中的每个链接,不如只制作一个包含在内的页脚,如下所示:

<?php include 'footer.html'; ?>

在“footer.html”里面是你的页脚。每当您更改 footer.html 时,它也会在每个用作页脚的页面中更改。

告诉我这是否有帮助。:)

编辑:实际上在 Ajax 中执行此操作并不难。:) 查看 jQuery(一个 JavaScript 库)中的 load 函数:

$('#result').load('ajax/test.html');
于 2012-12-29T06:46:25.233 回答
0

我希望这将在没有 javascript 的情况下对您有所帮助。

xml文件

<table>   <column>
    <column_id>1</news_id>
    <column_heading>heading</column_heading>    <column_details>details</column_details>    <column_url>url link</column_url>      </column> </table>

.aspx 文件

 <asp:Repeater runat="server" ID="XMLRepeater">
                    <ItemTemplate> <a  href="<%#Page.ResolveUrl(DataBinder.Eval(Container.DataItem, "column_url").ToString())%>"  target="_blank">                                    
                         <span >   <%# DataBinder.Eval(Container.DataItem, "column_heading") %>
                                    </span></a>
</ItemTemplate>
                </asp:Repeater>

aspx.cs 文件

protected void BindXMLToRepeater()
    {
        XmlTextReader xmlreader = new XmlTextReader(Server.MapPath("filename.xml"));
        try
        {

            DataSet ds = new DataSet();
            ds.ReadXml(xmlreader);
            //xmlreader.Close();

            DataTable dt = new DataTable();
            dt = (DataTable)ds.Tables[0];               

            //create dynamic data table
            DataTable dynamicTable = new DataTable();

            //DataRow
            DataRow dynamicRow;
            //DataColumn for Name and Time
            DataColumn id = new DataColumn("column_id", typeof(string));
            DataColumn heading = new DataColumn("column_heading", typeof(string));
            DataColumn url = new DataColumn("news_url", typeof(string));


            //add Column to Datatable
            dynamicTable.Columns.Add(id);
            dynamicTable.Columns.Add(heading);                
            dynamicTable.Columns.Add(url);

            //counter used for get fix no of news
            int counter = 0;

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                  dynamicRow = dynamicTable.NewRow();
                    //Add Rows to dymanicTable
                    dynamicTable.Rows.Add(dynamicRow);
                    //Assign Column value
                    dynamicTable.Rows[dynamicTable.Rows.Count - 1]["column_id"] = dt.Rows[i]["column_id"];
                    dynamicTable.Rows[dynamicTable.Rows.Count - 1]["column_heading"] = dt.Rows[i]["column_heading"];                    

                    dynamicTable.Rows[dynamicTable.Rows.Count - 1]["column_url"] = dt.Rows[i]["column_url"];


            }

            if (dynamicTable.Rows.Count != 0)
            {
                //Bind Data to repeater            
                XMLRepeater.DataSource = dynamicTable;
                XMLRepeater.DataBind();
            }
        }
        catch (Exception ee)
        {


        }
        finally
        {
            xmlreader.Close();
        }
    }
于 2012-12-29T12:27:19.280 回答
0

看起来他想做客户端。也许不想启用 PHP 模块。

于 2013-01-08T17:04:58.167 回答
0

谢谢大家的回答,但经过大量搜索,我找到了我想要的。我想使用单个文件更改多个页面页脚部分而不更改我的页面名称(从 .html 页面到 .aspx、.php、.asp 等其他页面)我需要做的就是使用 SSI aka 服务器端包含。您唯一需要做的就是检查您的服务器是否支持 SSI,然后制作一个您想要包含在每个页面上的单独的 html 页脚页面。为了包含该外部页脚页面,只需键入。

<!--#include file="footer.html" -->

在 area,div,table 中,您希望页脚加载并完成。

有关详细文章,请访问以下链接 http://httpd.apache.org/docs/2.2/howto/ssi.html

于 2013-01-02T09:13:05.030 回答