问题描述
我有这样的XML:
<Result>
<Tours>
<Tour>
<id>116112250590@804</id>
<operatorId>2672</operatorId>
<cityId>1000</cityId>
<countryId>12</countryId>
<roomSizeId>14</roomSizeId>
<departure>2020-09-16</departure>
<arrival>2020-09-23</arrival>
<duration>7</duration>
<ticket>1</ticket>
<directFlight>false</directFlight>
.............
尝试从id节点获取值Result> Tours> Tour> ID 数据使用ajax解析为XML
$(data).find("Tour").each(function () {
if ($(this).find("directFlight").text() == 'false') {
var directFlight = "с пересадкой";
} else {
var directFlight = "прямой";
}
$("#tours").append('<div class="col-12">'+
'<div class="card mb-4 shadow tour">'+
'<div class="row no-gutters">'+
'<div class="col-md-3 main-image" style="background-image:url(http:' + $(this).find("Allocation>PreviewPhoto>url").text() + ');">'+
'<div class="rating p-2 rounded"><i class="far fa-star mr-2"></i>' + $(this).find("Allocation>rate").text() + '</div>'+
'<div class="price p-2 rounded">' + $(this).find("price").text() + '<i class="fas fa-ruble-sign ml-2"></i></div>'+
'</div>'+
'<div class="col-md-9">'+
'<div class="row no-gutters">'+
'<div class="col-md-7">'+
'<div class="card-body py-2">'+
'<h5 class="card-title m-0">' + $(this).find("Allocation>name").text() + '</h5>'+
'<span class="text-muted">' + $(this).find("Resort>name").text() + ',' + $(this).find("ResortPlace>name").text() + '</span>'+
'</div>'+
'<ul class="list-group list-group-flush">'+
'<li class="list-group-item"><span class="text-muted">Номер:</span> ' + $(this).find("RoomSize>name").text() + ' (' + $(this).find("RoomSize>description").text() + ')</li>'+
'<li class="list-group-item"><span class="text-muted">Вид:</span> ' + $(this).find("RoomView>name").text() + ' (' + $(this).find("RoomView>description").text() + ')</li>'+
'<li class="list-group-item"><span class="text-muted">Питание:</span> ' + $(this).find("Meal>name").text() + ' (' + $(this).find("Meal>description").text() + ')</li>'+
'<li class="list-group-item"><span class="text-muted">Тип номера:</span> ' + $(this).find("RoomType>name").text() + ' (' + $(this).find("RoomType>description").text() + ')</li>'+
'</ul>'+
'</div>'+
'<div class="col-md-5 border-left">'+
'<ul class="list-group list-group-flush">'+
'<li class="list-group-item"><span class="text-muted">Вылет:</span> ' + $(this).find("departure").text() + ' (ночей: ' + $(this).find("duration").text() + ')</li>'+
'<li class="list-group-item"><span class="text-muted">Перелет:</span> ' + directFlight + ' </li>'+
'<li class="list-group-item"><span class="text-muted">Туроператор:</span> ' + $(this).find("Operator>name").text() + ' </li>'+
'</ul>'+
'<div class="text-center mt-3">'+
'<button type="button" class="btn btn-primary tour-modal" data-id="' + $(this).find("id").text() + '">Подробнее</button>'+
'</div>'+
'</div>'+
'</div>'+
'</div>'+
'</div>'+
'</div>'+
'</div>');
我在XML 116112250590 @ 804中的id值,但在附加id = 116112250590 @ 80410001226721471250673211382422之后
解决方法
我找到了在.text()之前使用.first()的解决方案。不知道为什么.text()无法正常工作。