【问题标题】:How to use XML data embedded in HTML in javascript (ajax)?如何在 javascript (ajax) 中使用嵌入在 HTML 中的 XML 数据?
【发布时间】:2014-01-04 07:16:54
【问题描述】:

我对 HTML 等非常陌生,我正在尝试创建一个完全“自包含”的 HTML 页面,因此它需要的所有 CSS、数据和 JavaScript 都将嵌入到 HTML 中(我知道这将创建一个非常丑陋的 HTML 文件,但我不介意)我需要这样做,因为我需要能够将 HTML 文件发送给同事,这样他们就可以打开它,而无需运行本地服务器,也无需将任何内容上传到在线服务器。

目前,我已经设法添加了所有 CSS 和 Javascript,但 Javascript 使用 ajax 来加载包含数据的外部 XML 文件。当我将 XML 嵌入 HTML 并尝试通过 ajax 加载它时,我似乎无法让它工作

我在 HTML 中嵌入了 XML 数据,如下所示:

<script id="graphFile" type="text/xmldata"> 
   <gexf>
      <graph defaultedgetype="directed" mode="static">
        <attributes class="node" mode="static">
          <attribute id="v_name" title="name" type="string"></attribute>
          <attribute id="indegree" title="In-Degree" type="integer">
            <default>0</default>
          </attribute>
      ...more data...
     </graph>
   </gexf>
</script>

在 javascript 中,原始 XML 文件是这样解析的(我取自基于我自己的 HTML 的示例):

function loadGraph() {

    $.ajax({
        url: "graphFile.xml",
        dataType: "xml",
        success: function(data) {
           ...calculate stuff...
        }
   });
}

但是,我不知道如何解析嵌入在 HTML 中的 XML 中的数据,因此 function(data) 仍然可以工作

【问题讨论】:

    标签: javascript jquery html ajax xml


    【解决方案1】:

    来自XML parsing of a variable string in JavaScript

    var xml = "<music><album>Beethoven</album></music>";
    
    var result = $(xml).find("album").text();
    

    或者,您可以离开 XML 并转而使用 JSON,这将是我强烈的个人建议。

    【讨论】:

    • 很抱歉,我似乎还不能完成这项工作。因为 XML 本身中已经存在 '"' 我无法创建 var xml 因为它不会被完全引用
    • @NBremer 它还包含 ' 字符?放弃 XML 并加入 JSON 潮流的绝佳借口。或者,如果您无论如何都对其进行硬编码,只需将 JS 对象从您尝试共享的数据中提取出来。
    • 好的,如果是这样的话。我使用了该文件的 JSON 输出,但我确实必须对 JavaScript 函数进行相当多的更改,该函数重构了 XML 数据以适应 JSON 的不同结构。但我让它与 JSON 版本一起工作:)
    • @NBremer 我将编辑我的答案以包含 JSON 建议,您可以标记为正确,很高兴我能提供帮助 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多