【问题标题】:Wrong value from XML来自 XML 的错误值
【发布时间】:2020-12-13 14:44:44
【问题描述】:

我有这样的 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 中的 id 值 116112250590@804 但在附加 id = 116112250590@80410001226721471250673211382422 之后

更新:添加了我的完整附加代码 这里截图:

【问题讨论】:

  • 预期输出是什么?
  • 正确的身份证号码。
  • 所以你有不止一个 Tour 并且附加文本不会与之前的文本有任何分离
  • 但是其他数据都正常显示。为什么只有ID显示后有附加价值?
  • 因为它也找到了所有其他带有 Id 的元素,所以你得到了一个元素集合。

标签: jquery xml xml-parsing


【解决方案1】:

我在 .text() 之前使用 .first() 找到了解决方案。不知道为什么 .text() 不能正常工作。

【讨论】:

    猜你喜欢
    • 2018-06-19
    • 1970-01-01
    • 2013-01-25
    • 2015-08-13
    • 1970-01-01
    • 2020-06-06
    • 1970-01-01
    • 1970-01-01
    • 2018-10-07
    相关资源
    最近更新 更多