I'm trying to loop through my XML using JavaScript testing for 2 conditions in the XML. Since the XML is being traversed in an archaic and customized version of JavaScript, I need to refer to the XML using ordinals. Here is a sample of my XML. I want to get the current ID number from the XML where 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>
I'm not sure how to use an ordinal with a condition.
In a modern browser it could look like this:
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)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.