如何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
})
我正在尝试将 开放天气 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
})