【问题标题】:How can I place XML value and use that in href anchor tag?如何放置 XML 值并在 href 锚标记中使用它?
【发布时间】:2012-12-29 06:33:45
【问题描述】:

如何在 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>

【问题讨论】:

  • 记得接受对您有帮助的答案(点击赞成/反对按钮附近的检查)...

标签: javascript html xml


【解决方案1】:

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

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

这个解决方案也可能有帮助 How to include an HTML page into another HTML page without frame/iframe?

【讨论】:

  • @DumbProducts-是的,可以通过多种方式实现。我认为 Arvind 想要使用 Javascript。
  • 我虽然那个jsp不是JavaScript而只是Java? (如果我错了,请纠正我)
  • @DumbProducts- 是的。但是我给出的解决方案的链接使用javascript来做到这一点。而且 PHP 也不是 Javascript?
  • 我只是指评论“我认为 Arvind 想要使用 Javascript。”你写的是指我的PHP代码。我注意到我们都不是 JavaScript。 :D
  • @DumbProducts-什么都没拿:D
【解决方案2】:

啊,是的。您的服务器是否启用了 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 库)中的加载函数:

$('#result').load('ajax/test.html');

【讨论】:

    【解决方案3】:

    我希望这将在没有 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();
            }
        }
    

    【讨论】:

      【解决方案4】:

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

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

      在区域、div、table 中您希望页脚加载并完成的任何位置。

      详细文章请到以下链接 http://httpd.apache.org/docs/2.2/howto/ssi.html

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-05-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多