Получить значение элемента с помощью порядкового номера и условия в XML - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь пройтись по моему XML, используя тестирование JavaScript для 2 условий в XML.Поскольку XML просматривается в устаревшей и настраиваемой версии JavaScript, мне нужно ссылаться на XML с помощью порядковых номеров.Вот образец моего XML.Я хочу получить текущий идентификационный номер из XML, где IsSelected = false.

    for(var x = 0; x < nCount; x++){
     if( SCRIPT_REFERENCE_TO_XML("/OptionalEquipment/EquipmentOption" + " 
       [" + x + "]/[IsSelected = 'false']")){
        removeRecs[x] = 
          SCRIPT_REFERENCE_TO_XML.getValue("/OptionalEquipment/EquipmentOption" + "[" + x + "]/@vehicleOptionId");
     }


            <OptionalEquipment>
            <EquipmentOption vehicleOptionId="7093735">
              <DisplayName>4-Cyl, GDI, 2.4 Liter</DisplayName>
              <VehicleOptionId>7093735</VehicleOptionId>
              <IsSelected>false</IsSelected>
              <OptionTypeDisplayName>Engine</OptionTypeDisplayName>
            </EquipmentOption>
            <EquipmentOption vehicleOptionId="7093790">
              <DisplayName>Auto, 6-Spd Shiftronic</DisplayName>
              <VehicleOptionId>7093790</VehicleOptionId>
              <IsSelected>true</IsSelected>
              <OptionTypeDisplayName>Transmission</OptionTypeDisplayName>
             </EquipmentOption>
            <EquipmentOption vehicleOptionId="7093801">
              <DisplayName>FWD</DisplayName>
              <VehicleOptionId>7093801</VehicleOptionId>
              <IsSelected>true</IsSelected>
              <OptionTypeDisplayName>Drivetrain</OptionTypeDisplayName>
             </EquipmentOption>
            <EquipmentOption vehicleOptionId="7093804">
              <DisplayName>AWD</DisplayName>
              <VehicleOptionId>7093804</VehicleOptionId>
              <IsSelected>false</IsSelected>
              <OptionTypeDisplayName>Drivetrain</OptionTypeDisplayName>
            </EquipmentOption>
            </OptionalEquipment>    

Я не уверен, как использовать порядковый номер с условием.

1 Ответ

0 голосов
/ 26 июня 2019

В современном браузере это может выглядеть так:

var XML = `<OptionalEquipment>
            <EquipmentOption vehicleOptionId="7093735">
              <DisplayName>4-Cyl, GDI, 2.4 Liter</DisplayName>
              <VehicleOptionId>7093735</VehicleOptionId>
              <IsSelected>false</IsSelected>
              <OptionTypeDisplayName>Engine</OptionTypeDisplayName>
            </EquipmentOption>
            <EquipmentOption vehicleOptionId="7093790">
              <DisplayName>Auto, 6-Spd Shiftronic</DisplayName>
              <VehicleOptionId>7093790</VehicleOptionId>
              <IsSelected>true</IsSelected>
              <OptionTypeDisplayName>Transmission</OptionTypeDisplayName>
             </EquipmentOption>
            <EquipmentOption vehicleOptionId="7093801">
              <DisplayName>FWD</DisplayName>
              <VehicleOptionId>7093801</VehicleOptionId>
              <IsSelected>true</IsSelected>
              <OptionTypeDisplayName>Drivetrain</OptionTypeDisplayName>
             </EquipmentOption>
            <EquipmentOption vehicleOptionId="7093804">
              <DisplayName>AWD</DisplayName>
              <VehicleOptionId>7093804</VehicleOptionId>
              <IsSelected>false</IsSelected>
              <OptionTypeDisplayName>Drivetrain</OptionTypeDisplayName>
            </EquipmentOption>
            </OptionalEquipment>`
var oParser = new DOMParser();
var oDOM = oParser.parseFromString(XML, "application/xml");
var opts = [...oDOM.querySelectorAll("IsSelected")]
  .filter(node => node.textContent === "false")
  .map(notSel => notSel.previousElementSibling.textContent);

console.log(opts)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...