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

时间:2022-11-27 07:59:01

I want to get all the values of the items where the name="id" and append these values to the div to be used for future purposes.

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

I have the following XML:

我有以下XML:

Pastebin link

and this is my jQuery:

这是我的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>');
        });
    }
});

I can't seem to find why nothing gets added to the div. Any help would be appreciated. Thanks in advance.

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

3 个解决方案

#1


0  

i've tried your code, and it's work perfectly !

我已经尝试过你的代码了,它完美无缺!

The only thing I see: is you code in the scope of $(document).ready()?

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

Work

<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>

should see 16: 16

应该看到16:16

Doesn't Work

<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>

should see 16:

应该看16:

#2


0  

The code works for me. I didn't get any errors back from the console.

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

It's more about this thing here var id = xml.getElementsByTagName("value")[4].childNodes[0].nodeValue;

这里的内容更多的是var id = xml.getElementsByTagName(“value”)[4] .childNodes [0] .nodeValue;

FYI you need to train your meKanix,

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

┏(--)┛┗(-- )┓┗(--)┛┏(--) ┏(--)┓┏(--)┛┗(-- )┓┗(--)┛┏(--)┓ ┏(--)┛┗(-- )┓┗(--)┛┏(--)┓┏(--)┛┗(-- )┓┗(--)┛┏(--)┓┏(--)┛┗(-- )┓┗(--)┛┏(-_-)┓

┏( - )┛┗( - )┓┗( - )┛┏( - )┏( - )┓┏( - )┛┗( - )┓┗( - )┛┏( - - )┓┓( - )┛┗( - )┓┗( - )┛┏( - )┓┏( - )┛┗( - )┓┗( - )┛┏( - ) ┓┏( - )┛┗( - )┓┗( - )┛┏(-_-)┓

#3


0  

I fixed the problem by using the following code:

我使用以下代码修复了问题:

   $(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>'); 
   }

#1


0  

i've tried your code, and it's work perfectly !

我已经尝试过你的代码了,它完美无缺!

The only thing I see: is you code in the scope of $(document).ready()?

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

Work

<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>

should see 16: 16

应该看到16:16

Doesn't Work

<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>

should see 16:

应该看16:

#2


0  

The code works for me. I didn't get any errors back from the console.

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

It's more about this thing here var id = xml.getElementsByTagName("value")[4].childNodes[0].nodeValue;

这里的内容更多的是var id = xml.getElementsByTagName(“value”)[4] .childNodes [0] .nodeValue;

FYI you need to train your meKanix,

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

┏(--)┛┗(-- )┓┗(--)┛┏(--) ┏(--)┓┏(--)┛┗(-- )┓┗(--)┛┏(--)┓ ┏(--)┛┗(-- )┓┗(--)┛┏(--)┓┏(--)┛┗(-- )┓┗(--)┛┏(--)┓┏(--)┛┗(-- )┓┗(--)┛┏(-_-)┓

┏( - )┛┗( - )┓┗( - )┛┏( - )┏( - )┓┏( - )┛┗( - )┓┗( - )┛┏( - - )┓┓( - )┛┗( - )┓┗( - )┛┏( - )┓┏( - )┛┗( - )┓┗( - )┛┏( - ) ┓┏( - )┛┗( - )┓┗( - )┛┏(-_-)┓

#3


0  

I fixed the problem by using the following code:

我使用以下代码修复了问题:

   $(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>'); 
   }