3

从来都不容易封装标题中要说的内容...但是我们开始...

我意识到我可能直接看到了 JQuery 的明显功能,并且可能是内置功能。

我想做的是:

  1. 有一个 XML 文件(本地或通过服务器)包含恰好有其节点名称的节点,即作为 HTML 中的文本框的 ID 名称,即

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

我马上意识到有 a) 可能是插件,b) 可能是更好的概念,但我只需要映射到基本的 HTML 元素.. 事实上,我可以在技术上拥有一些更高级的功能来填充组合框、单选按钮等。 ...

只是有什么想法可以遵循吗?或者是否有一个简单的 JQuery 插件可以做到这一点?

PS:我不喜欢这样的模板,因为即使我意识到说 jTemplates 的力量,我真的不需要任何像那样复杂/灵活的东西......

提前致谢!!

4

4 回答 4

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'
     ); 
于 2010-01-26T01:33:00.350 回答
2

尝试这个:

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

假设在 XML 中只有 1 级嵌套。

于 2010-01-26T02:27:10.243 回答
0

实际上很棒的输入,谢谢大家的帮助..它让我继续前进。

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

总而言之,我将拥有:

  1. 在我的系统中,数据库中的字段名称相同。所以如果数据库字段被称为名字,那么 HTML 元素将被称为名字
  2. 在我从数据库创建的 XML 中,我将添加诸如“元素类型”之类的属性,即文本、单选、组合或其他任何内容,因此我知道如何填充这些值。
  3. 然后 javascript/JQuery 可以做它需要做的事情来显示数据..

这一切的主要原因是我的合作伙伴可以将页面/布局设计为纯 HTML,而不用担心 XSLT/模板......并且填充了简单的数据......

我敢肯定那里一定有一些“引擎/插件”......但现在我会努力......

再次感谢...

于 2010-01-26T03:13:45.313 回答
0
$(xml).find('foo').each( function() {
  alert (this.text());
});
于 2010-01-26T03:44:56.517 回答