如何extract/get一个xml属性值来显示

How to extract/get a xml attribute values to display

我正在尝试将 开放天气 api 集成到我的应用程序中,我调用了天气 api 并返回了 xml 响应。但是当我试图获取值时,它会抛出类似未知错误的错误。

我的代码是:

js代码:

<script type="application/javascript">

        jQuery(document).ready(function(){
            $.ajax({
                type: "GET",
                url: "http://api.openweathermap.org/data/2.5/forecast/daily?q=Hyderabad,IN&mode=xml&appid=c9d49310f8023ee2617a7634de23c2aa",
                dataType: "xml",
                success: function(data) {
                    /* handle data here */
                    console.log(data);

                    //$('<p>Text</p>').appendTo('#weather_report');

                    /*var wrapper = $("#weather_report");
                     wrapper.empty();
                     wrapper.append("<div class='city'> <p>Place: " + data.city.name + "</p><p>Country: " + data.city.country + "</p></div>");
                     wrapper.append("<div class='day_1'> <p>Place: " + data.city.name + "</p><p>Country: " + data.city.country + "</p></div>");*/

                },
                error: function(xhr, status) {
                    /* handle error here */
                }
            });
        });

    </script>

以上代码返回以下格式:

能否建议我如何显示 xml 值?

您可以在页面上创建一个隐藏的 div,然后使用 JQuery.load 方法将 XML 元素插入到 div 中。完成后,您可以像使用 HTML 一样遍历和修改它。见以下代码:

$('#hiddenDivId').load('xmlURL');

这会将 XML 插入 hiddenDiv。

例如,如果你有这个 XML:

<foos>
  <foo>
    <prop1>Test</prop1>
    <prop2>Test1</prop2>
  </foo>
</foos>

然后你 $('#hiddenDivId').load('foos.xml');

HTML 元素 'hiddenDivId' 看起来像这样:

<div id="hiddenDivId">
  <foos>
    <foo>
      <prop1>Test</prop1>
      <prop2>Test1</prop2>
    </foo>
  </foos>
</div>

之后,您可以像这样遍历 'foo' 的元素:

$('#hiddenDivId foos foo').each(function(){
  //you can then do whatever you want with the current 'foo'.
  //to access it from the loop, use the $(this) keyword
  //you can access the properties using $(this).children('property name')
  //and it will treat it like a HTML element
})