由于我的XML输出中带有foreach
标签,因此无法通过VehicleDescription
循环提取XML数据。该标记中的属性随应用程序发出的每个不同请求而变化。因此,我不能简单地将VehicleDescription
及其所有属性(Country =“ US” language =“ en” modelYear =“ 2015” bestMakeName =“ Audi” bestModelName =“ A4” bestStyleName =“ 4dr Sdn Auto quattro xPath的2.0T Premium” bestTrimName =“ Premium”),它需要保持可变,因为通过此代码处理了不同的请求。
到目前为止,我的代码如下所示。如何编辑它,以便它通过MECHANICAL
循环调用foreach
数据?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Dynamically Generate Select Dropdowns 2</title>
<style type="text/css">
select {display: block;margin-left: auto;margin-right: auto;}
</style>
</head>
<body>
<?php
$xml = file_get_contents('note.xml');
$dom = new DOMDocument();
$dom->loadXML($xml);
$xpath = new domXpath($dom);
foreach ($xpath- >query('//VehicleDescription/standard[header="MECHANICAL"]/description') as $mechdescription) {
$mecharray[] = $mechdescription->nodeValue ;
}
foreach ($mecharray as $mechanicaldescription){
echo $mechanicaldescription ."\n\n";
}
?>
</body>
</html>
这是XML:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<VehicleDescription country="US" language="en" modelYear="2015" bestMakeName="Audi" bestModelName="A4" bestStyleName="4dr Sdn Auto quattro 2.0T Premium" bestTrimName="Premium" xmlns="urn:description7b.services.chrome.com">
<standard>
<header id="1236">MECHANICAL</header>
<description>Engine: 2.0L DOHC 4-Cylinder TFSI -inc: Audi valvelift system</description>
<category id="1048"/>
<category id="1054"/>
<category id="1213"/>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1236">MECHANICAL</header>
<description>Transmission: 8-Speed Automatic w/Tiptronic -inc: sport program and manual shift mode</description>
<category id="1130"/>
<category id="1195"/>
<category id="1220"/>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1236">MECHANICAL</header>
<description>Full-Time All-Wheel Drive</description>
<category id="1041"/>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1236">MECHANICAL</header>
<description>Engine Oil Cooler</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1236">MECHANICAL</header>
<description>80-Amp/Hr Maintenance-Free Battery w/Run Down Protection</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1236">MECHANICAL</header>
<description>150 Amp Alternator</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1236">MECHANICAL</header>
<description>Gas-Pressurized Shock Absorbers</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1236">MECHANICAL</header>
<description>Front And Rear Anti-Roll Bars</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1236">MECHANICAL</header>
<description>Electric Power-Assist Speed-Sensing Steering</description>
<category id="1084"/>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1236">MECHANICAL</header>
<description>16.1 Gal. Fuel Tank</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1236">MECHANICAL</header>
<description>Single Stainless Steel Exhaust</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1236">MECHANICAL</header>
<description>Multi-Link Front Suspension w/Coil Springs</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1236">MECHANICAL</header>
<description>Multi-Link Rear Suspension w/Coil Springs</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1236">MECHANICAL</header>
<description>4-Wheel Disc Brakes w/4-Wheel ABS, Front Vented Discs, Brake Assist, Hill Hold Control and Electric Parking Brake</description>
<category id="1018"/>
<category id="1020"/>
<category id="1228"/>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1176">EXTERIOR</header>
<description>Wheels: 8.0J x 17" 10-Spoke-Star-Design</description>
<category id="1123"/>
<styleId>369101</styleId>
</standard>
<standard>
<header id="1176">EXTERIOR</header>
<description>Tires: P245/45R17 AS</description>
<category id="1092"/>
<category id="1097"/>
<styleId>369101</styleId>
</standard>
<standard>
<header id="1176">EXTERIOR</header>
<description>Wheels w/Silver Accents</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1176">EXTERIOR</header>
<description>Steel Spare Wheel</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1176">EXTERIOR</header>
<description>Compact Spare Tire Mounted Inside Under Cargo</description>
<category id="1098"/>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1176">EXTERIOR</header>
<description>Clearcoat Paint</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1176">EXTERIOR</header>
<description>Express Open/Close Sliding And Tilting Glass 1st Row Sunroof w/Sunshade</description>
<category id="1069"/>
<category id="1132"/>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1176">EXTERIOR</header>
<description>Body-Colored Front Bumper</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1176">EXTERIOR</header>
<description>Body-Colored Rear Bumper</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1176">EXTERIOR</header>
<description>Rocker Panel Extensions</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1176">EXTERIOR</header>
<description>Aluminum Side Windows Trim and Black Front Windshield Trim</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1176">EXTERIOR</header>
<description>Body-Colored Door Handles</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1176">EXTERIOR</header>
<description>Body-Colored Power Heated Side Mirrors w/Manual Folding and Turn Signal Indicator</description>
<category id="1064"/>
<category id="1065"/>
<category id="1174"/>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1176">EXTERIOR</header>
<description>Fixed Rear Window w/Defroster</description>
<category id="1034"/>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1176">EXTERIOR</header>
<description>Light Tinted Glass</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1176">EXTERIOR</header>
<description>Speed Sensitive Rain Detecting Variable Intermittent Wipers w/Heated Jets</description>
<category id="1127"/>
<category id="1159"/>
<category id="1160"/>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1176">EXTERIOR</header>
<description>Galvanized Steel/Aluminum Panels</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1176">EXTERIOR</header>
<description>Black Grille w/Chrome Surround</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1176">EXTERIOR</header>
<description>Trunk Rear Cargo Access</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1176">EXTERIOR</header>
<description>Programmable Projector Beam High Intensity Low/High Beam Daytime Running Auto-Leveling Headlamps w/Washer and Delay-Off</description>
<category id="1061"/>
<category id="1168"/>
<category id="1169"/>
<category id="1313"/>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1176">EXTERIOR</header>
<description>Front And Rear Fog Lamps</description>
<category id="1151"/>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1176">EXTERIOR</header>
<description>Cornering Lights</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1176">EXTERIOR</header>
<description>Perimeter/Approach Lights</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1176">EXTERIOR</header>
<description>LED Brakelights</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="10689">ENTERTAINMENT</header>
<description>Radio: Audi Concert System w/1CD Player -inc: MP3 capable, AM/FM radio, auxiliary input jack, SD card slots w/32GB capacity for MP3 files, speed-dependent volume control, Audi MMI radio plus system for controlling infotainment/climate/car setup w/6.5" color screen, Audi music interface w/iPod integration w/1 cable for iPod connection, Audi 6-channel DSP extended 180 watt sound system w/10 speakers including subwoofer and SiriusXM satellite radio w/90-day trial subscription</description>
<category id="1014"/>
<category id="1017"/>
<category id="1149"/>
<category id="1150"/>
<category id="1230"/>
<styleId>369101</styleId>
</standard>
<standard>
<header id="10689">ENTERTAINMENT</header>
<description>Radio w/Clock and Steering Wheel Controls</description>
<category id="1161"/>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="10689">ENTERTAINMENT</header>
<description>Audio Theft Deterrent</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="10689">ENTERTAINMENT</header>
<description>Window Grid Diversity Antenna</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="10689">ENTERTAINMENT</header>
<description>Bluetooth Wireless Phone Connectivity</description>
<category id="1211"/>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Power Front Seats -inc: 8-way power front seats and 4-way power lumbar adjustment for driver</description>
<category id="1074"/>
<category id="1075"/>
<category id="1082"/>
<category id="1189"/>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Driver Seat</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Passenger Seat</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>60-40 Folding Bench Front Facing Fold Forward Seatback Rear Seat</description>
<category id="1076"/>
<category id="1304"/>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Manual Tilt/Telescoping Steering Column</description>
<category id="1087"/>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Gauges -inc: Speedometer, Odometer, Engine Coolant Temp, Tachometer, Oil Level, Trip Odometer and Trip Computer</description>
<category id="1203"/>
<styleId>369101</styleId>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Power Rear Windows</description>
<category id="1126"/>
<styleId>369101</styleId>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Leather Steering Wheel</description>
<category id="1192"/>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Front Cupholder</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Rear Cupholder</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Front Cigar Lighter(s)</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Ashtray</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Valet Function</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Power Fuel Flap Locking Type</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Remote Keyless Entry w/Integrated Key Transmitter, 4 Door Curb/Courtesy, Illuminated Entry and Panic Button</description>
<category id="1062"/>
<category id="1063"/>
<styleId>369101</styleId>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Remote Releases -Inc: Power Cargo Access</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>HomeLink Garage Door Transmitter</description>
<category id="1204"/>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Cruise Control</description>
<category id="1033"/>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Dual Zone Front Automatic Air Conditioning</description>
<category id="1009"/>
<category id="1010"/>
<category id="1011"/>
<styleId>369101</styleId>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Rear HVAC w/Separate Controls</description>
<category id="1011"/>
<category id="1012"/>
<styleId>369101</styleId>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>HVAC -inc: Underseat Ducts and Console Ducts</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Illuminated Locking Glove Box</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Driver Foot Rest</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Interior Trim -inc: Aluminum Instrument Panel Insert, Aluminum Door Panel Insert, Aluminum Console Insert and Aluminum/Metal-Look Interior Accents</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Full Cloth Headliner</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Leatherette Door Trim Insert</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Leather Gear Shift Knob</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Leather Seating Surfaces</description>
<category id="1078"/>
<styleId>369101</styleId>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Day-Night Rearview Mirror</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Driver And Passenger Visor Vanity Mirrors w/Driver And Passenger Illumination</description>
<category id="1175"/>
<category id="1176"/>
<category id="1177"/>
<category id="1178"/>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Full Floor Console w/Storage, Mini Overhead Console w/Storage and 3 12V DC Power Outlets</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Front And Rear Map Lights</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Fade-To-Off Interior Lighting</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Full Carpet Floor Covering -inc: Carpet Front And Rear Floor Mats</description>
<category id="1055"/>
<styleId>369101</styleId>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Carpet Floor Trim and Carpet Trunk Lid/Rear Cargo Door Trim</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Cargo Space Lights</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>FOB Controls -inc: Trunk/Hatch/Tailgate, Windows and Sunroof/Convertible Roof</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Driver / Passenger And Rear Door Bins</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Power 1st Row Windows w/Front And Rear 1-Touch Up/Down</description>
<category id="1126"/>
<styleId>369101</styleId>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Delayed Accessory Power</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Power Door Locks w/Autolock Feature</description>
<category id="1063"/>
<styleId>369101</styleId>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Systems Monitor</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Redundant Digital Speedometer</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Trip Computer</description>
<category id="1203"/>
<styleId>369101</styleId>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Outside Temp Gauge</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Analog Display</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Manual Anti-Whiplash Adjustable Front Head Restraints and Manual Adjustable Rear Head Restraints</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Front Center Armrest and Rear Center Armrest w/Storage</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>2 Seatback Storage Pockets</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Perimeter Alarm</description>
<category id="1013"/>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Immobilizer III Engine Immobilizer</description>
<category id="1166"/>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>3 12V DC Power Outlets</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
<standard>
<header id="1220">INTERIOR</header>
<description>Air Filtration</description>
<styleId>369101</styleId>
<installed cause="BaseEquipment"/>
</standard>
</VehicleDescription>
非常感谢!
答案 0 :(得分:0)
问题是VehicleDescription元素上有一个名称空间。您需要register the namespace,然后在XPath查询中引用它。试试看:
<?php
$xml = file_get_contents('note.xml');
$dom = new DOMDocument();
$dom->loadXML($xml);
$xpath = new DOMXPath($dom);
$xpath->registerNamespace("x", "urn:description7b.services.chrome.com");
$result = $xpath->query('//x:standard/x:header[ . = "MECHANICAL"]/../x:description');
$mecharray = [];
foreach ($result as $mechdescription)
{
$mecharray[] = $mechdescription->nodeValue;
}
foreach ($mecharray as $mechanicaldescription)
{
echo $mechanicaldescription . "\n\n";
}