Jquery:将XML节点映射到HTML ID元素

时间:2010-01-26 01:02:46

标签: jquery xml data-mapping

永远不容易将标题中的内容封装起来......但是我们走了......

我意识到我可能已经看到了明显的,可能是JQuery的内置函数。

我想做的是:

  1. 有一个XML文件(本地或通过服务器)包含碰巧拥有它们的节点 节点名称,即HTML中的文本框的ID名称 即

  2. 我想通过JQuery AJAX调用,解析XML并映射节点的值 到相同节点名称的HTML ID元素的值...

  3. 我立即意识到有一个可能的插件,b)可能更好的概念,但我只需要映射到基本的HTML元素..事实上我可以在技术上有一些更高级的功能来填充说组合框,收音机按钮等....

    任何想要遵循的道路的想法?或者如果有一个简单的JQuery插件来执行此操作?

    P.S:我不是这样的模板,因为即使我意识到说jTemplates的力量,我也不需要像那样复杂/灵活的东西......

    提前致谢!!

4 个答案:

答案 0 :(得分:3)

这应该让你开始进行xml解析..

var xml = '<root><text1>i am in text1</text1><text2>i am in text2</text2></root>';
$(xml)
      .children()
      .each(
            function(){
                       alert(this.nodeName + ':' + $(this).text());
                      }
           );

nodeName是xml中的标记名称,您将用作html的id。 jquery文本方法将返回xml节点的值..(仅文本)

加载xml文件使用

$.get( 
      '/path/to/filename.xml', 
      function(){ 
                 /*runs on success, do the parsing here*/
                },
      'xml'
     ); 

答案 1 :(得分:2)

试试这个:

$.get ('/path/to/xml', function (data)
{
    $(data).children ().each (function ()
    {
        $('#' + this.nodeName).val ($(this).text());
    });
})

假设XML中只有1级嵌套。

答案 2 :(得分:0)

实际上是很棒的输入,谢谢你们的帮助..它让我走了。

再次,我意识到那里有模板引擎,但我的下一步是构建一个更复杂的能够说填充组合框,单选按钮等..只是HTML的基础知识..因为我是使用DHTMLX components做任何花哨的事情......主要是因为他们似乎最容易理解我发现的javascript小部件..我知道ExtJS正在追赶更好的docco,更容易的API等。

所以在摘要中,我将:

  1. 整个系统中名称相同的数据库中的字段..所以如果是数据库字段 被称为firstname,然后HTML元素将被称为firstname
  2. 在我从数据库创建的XML中,我将添加“元素类型”之类的属性 这将是文字,广播,组合或其他什么,所以我知道如何填充价值。
  3. 然后javascript / JQuery可以做它显示数据所需的东西..
  4. 所有这一切的主要原因是我的合作伙伴可以将页面/布局设计为纯HTML,而不用担心XSLT /模板...并填充数据简单......

    我确信那里肯定会有一些“引擎/插件”..但是现在我会继续努力......

    再次感谢...

答案 3 :(得分:0)

$(xml).find('foo').each( function() {
  alert (this.text());
});