使用jquery获取基于属性的xml值

时间:2015-04-30 08:08:47

标签: jquery xml

我想获取name =“id”的项目的所有值,并将这些值附加到div以用于将来的目的。

我有以下XML:

Pastebin link

这是我的jQuery:

$.ajax({
    url: "http://test.be/",
    type: "POST",
    dataType: "xml",
    data: soapMessage2,
    crossDomain: true,
    contentType: "text/xml; charset=\"UTF-8\"",
    success: function(xml) {
        $(xml).find('item[name="id"]').each(function() {
            var libr = $(this).text();
            $('#lib').append('<a href="#">' + libr + '</a>');
        });
    }
});

我似乎无法找到为什么没有任何东西被添加到div。任何帮助,将不胜感激。提前谢谢。

3 个答案:

答案 0 :(得分:0)

我已经尝试过你的代码了,它的工作非常完美!

我唯一看到的是:您是否在$(document).ready()范围内编码?

<强> 工作

<html>
      <head>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
        <script type="text/javascript">
          $(document).ready(function() {
          var xml=<your xml>


                $(xml).find('item[name="id"]').each(function() {
                var libr = $(this).text();
                $('#lib').append('<a href="#">'+libr+'</a>');
                });
            });
        </script>

      </head>
      <body>
        <div>should see 16: <span id='lib'></span></div>

      </body>
    </html>
  

应该看到16:16

不起作用

<html>
      <head>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
        <script type="text/javascript">

          var xml=<your xml>


                $(xml).find('item[name="id"]').each(function() {
                var libr = $(this).text();
                $('#lib').append('<a href="#">'+libr+'</a>');
                });

        </script>

      </head>
      <body>
         <div>should see 16: <span id='lib'></span></div>

      </body>
    </html>
  

应该看到16:

答案 1 :(得分:0)

该代码适合我。 我没有从控制台收到任何错误。

这里有关于这件事的更多信息var id = xml.getElementsByTagName(&#34; value&#34;)[4] .childNodes [0] .nodeValue;

仅供参考,你需要训练你的meKanix,

┏( - - )┛┗( - - )┓┗( - - )┛┏( - - )┏( - - )┓┏ ( - - )┛┗( - - )┓┗( - - )┛┏( - - )┓┓( - - )┛┗( - - )┓┗( - - )┛┏( - - )┓┏( - - )┛┗( - - )┓┗( - - )┛┏( - - )┓┏( - - )┛┗( - - )┓┗( - - )┛┏(-_-)┓< / p>

答案 2 :(得分:0)

我使用以下代码解决了问题:

   $(xml).find('key').each(function() {
   if($(this).text().toLowerCase() === "id"){
        // var libr = $(this).closest("item").find("value").text();
        var libr = $(this).next().text(); //alternate method for acessing                    
        $('#lib').append('<p><a href="#">' + libr + '</a></p>'); 
   }