【发布时间】:2014-11-26 18:25:07
【问题描述】:
我将在第 4 天敲我的脑袋 - 我尝试过 vbscript、javascript 和 jQuery
jQuery 是我获得的最接近可读性的东西(不过,我对任何东西都持开放态度
我正在为日终报告导入 UPS XML 文件。我只需要和
我需要的是能够将结果提取到 ASP 脚本中以更新我的购物车。 XML 文件将是本地的,我会将其上传到我的服务器,然后运行脚本。
这是我的 HTML,它在一行中产生以下结果:
100513100516 - 1Z12345X0341863059 1Z12345X0342721665
我希望它显示如下:
100513 - 1Z12345X0341863059
100516 - 1Z12345X0342721665
<!DOCTYPE html>
<html>
<head>
<script src="jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#dvContent").append("");
$.ajax({
type: "GET",
url: "UPSImportTracking.xml",
dataType: "xml",
success: function(xml){
$(xml).find('OpenShipments').each(function(){
var cID = $(this).find('CustomerID').text();
var tID = $(this).find('TrackingNumbers').text();
$("#dvContent").append("<p>"+cID+" - "+tID+"</p>");
});
},
error: function() {
alert("An error occurred while processing XML file.");
}
});
});
</script>
</head>
<body>
<div id="dvContent">
</div>
</body>
</html>
这是 UPS XML
<?xml version="1.0" encoding="windows-1252"?>
<OpenShipments xmlns="x-schema:OpenShipments.xdr">
<OpenShipment xmlns="x-schema: OpenShipments.xdr" ProcessStatus="Processed" ShipmentOption="SC">
<ShipTo>
<CustomerID>100513</CustomerID>
<CompanyOrName>MACHXX</CompanyOrName>
<Attention>Robert Brady </Attention>
<Address1>902 Old Coupland Rd</Address1>
<Address2></Address2>
<CityOrTown>Taylor</CityOrTown>
<PostalCode>76574</PostalCode>
<StateProvinceCounty>TX</StateProvinceCounty>
<CountryTerritory>United States</CountryTerritory>
<Telephone>512-888-3900</Telephone>
<EmailAddress>jcdisciple@gmail.com</EmailAddress>
<ResidentialIndicator>1</ResidentialIndicator>
</ShipTo>
<ShipmentInformation>
<ServiceType>GND</ServiceType>
<NumberOfPackages>1</NumberOfPackages>
<DescriptionOfGoods>Industrial Metals</DescriptionOfGoods>
<ShipperNumber>12345X</ShipperNumber>
<BillingOption>PP</BillingOption>
<QVNOption>
<QVNRecipientAndNotificationTypes>
<EMailAddress>jcdisciple@gmail.com</EMailAddress>
<Ship>1</Ship>
</QVNRecipientAndNotificationTypes>
<SubjectLine>Your Order is being Prepared for Shipment.</SubjectLine>
<Memo></Memo>
</QVNOption>
</ShipmentInformation>
<Package>
<PackageType>CP</PackageType>
<Weight>1</Weight>
<LargePackageIndicator></LargePackageIndicator>
<Reference1>100513</Reference1>
<Reference2></Reference2>
</Package>
<ReturnTo>
<CompanyName>Metals4U-Dallas</CompanyName>
<ContactPerson></ContactPerson>
<AddressLine1>1240 Majesty Rd</AddressLine1>
<AddressLine2></AddressLine2>
<AddressLine3></AddressLine3>
<City>Dallas</City>
<CountryCode>United States</CountryCode>
<PostalCode>75247</PostalCode>
<StateOrProvince>TX</StateOrProvince>
<Residential></Residential>
<EmailAddress1>robert.brady@metals4u.com</EmailAddress1>
</ReturnTo>
<ProcessMessage>
<ShipmentRates>
<ShipmentCharges>
<Rate>
<Published>12.83</Published>
<Negotiated>0.00</Negotiated>
</Rate>
</ShipmentCharges>
<ShipperCharges>
<Rate>
<Published>12.83</Published>
<Negotiated>0.00</Negotiated>
</Rate>
</ShipperCharges>
<ReceiverCharges>
<Rate>
<Published>0.00</Published>
<Negotiated>0.00</Negotiated>
</Rate>
</ReceiverCharges>
<QVN>
<Rate>
<Published>0.00</Published>
<Negotiated>0.00</Negotiated>
</Rate>
</QVN>
<ResidentialSurcharge>
<Rate>
<Published>2.90</Published>
<Negotiated></Negotiated>
</Rate>
</ResidentialSurcharge>
<PackageRates>
<PackageRate>
<TrackingNumber>1Z12345X0341863059</TrackingNumber>
<PackageCharges>
<Rate>
<Published>12.83</Published>
<Negotiated>0.00</Negotiated>
</Rate>
</PackageCharges>
<Delivery_AreaSurcharge>
<Rate>
<Published>2.85</Published>
<Negotiated>0.00</Negotiated>
</Rate>
</Delivery_AreaSurcharge>
</PackageRate>
</PackageRates>
</ShipmentRates>
<TrackingNumbers>
<TrackingNumber>1Z12345X0341863059</TrackingNumber>
</TrackingNumbers>
<ImportID></ImportID>
<Reference1>100513</Reference1>
<Reference2></Reference2>
<ShipmentID></ShipmentID>
<PRONumber></PRONumber>
</ProcessMessage>
</OpenShipment>
<OpenShipment xmlns="x-schema: OpenShipments.xdr" ProcessStatus="Processed" ShipmentOption="SC">
<ShipTo>
<CustomerID>100516</CustomerID>
<CompanyOrName>C/O: Robert Brady</CompanyOrName>
<Attention>Robert Brady </Attention>
<Address1>902 Old Coupland Rd</Address1>
<Address2></Address2>
<CityOrTown>Taylor</CityOrTown>
<PostalCode>76574</PostalCode>
<StateProvinceCounty>TX</StateProvinceCounty>
<CountryTerritory>United States</CountryTerritory>
<Telephone>512-888-3900</Telephone>
<EmailAddress>jcdisciple@gmail.com</EmailAddress>
<ResidentialIndicator>1</ResidentialIndicator>
</ShipTo>
<ShipmentInformation>
<ServiceType>GND</ServiceType>
<NumberOfPackages>1</NumberOfPackages>
<DescriptionOfGoods>Industrial Metals</DescriptionOfGoods>
<ShipperNumber>12345X</ShipperNumber>
<BillingOption>PP</BillingOption>
<QVNOption>
<QVNRecipientAndNotificationTypes>
<EMailAddress>jcdisciple@gmail.com</EMailAddress>
<Ship>1</Ship>
</QVNRecipientAndNotificationTypes>
<SubjectLine>Your Order is being Prepared for Shipment.</SubjectLine>
<Memo></Memo>
</QVNOption>
</ShipmentInformation>
<Package>
<PackageType>CP</PackageType>
<Weight>1</Weight>
<LargePackageIndicator></LargePackageIndicator>
<Reference1>100516</Reference1>
<Reference2></Reference2>
</Package>
<ReturnTo>
<CompanyName>Metals4U-Dallas</CompanyName>
<ContactPerson></ContactPerson>
<AddressLine1>1240 Majesty Rd</AddressLine1>
<AddressLine2></AddressLine2>
<AddressLine3></AddressLine3>
<City>Dallas</City>
<CountryCode>United States</CountryCode>
<PostalCode>75247</PostalCode>
<StateOrProvince>TX</StateOrProvince>
<Residential></Residential>
<EmailAddress1>robert.brady@metals4u.com</EmailAddress1>
</ReturnTo>
<ProcessMessage>
<ShipmentRates>
<ShipmentCharges>
<Rate>
<Published>12.83</Published>
<Negotiated>0.00</Negotiated>
</Rate>
</ShipmentCharges>
<ShipperCharges>
<Rate>
<Published>12.83</Published>
<Negotiated>0.00</Negotiated>
</Rate>
</ShipperCharges>
<ReceiverCharges>
<Rate>
<Published>0.00</Published>
<Negotiated>0.00</Negotiated>
</Rate>
</ReceiverCharges>
<QVN>
<Rate>
<Published>0.00</Published>
<Negotiated>0.00</Negotiated>
</Rate>
</QVN>
<ResidentialSurcharge>
<Rate>
<Published>2.90</Published>
<Negotiated></Negotiated>
</Rate>
</ResidentialSurcharge>
<PackageRates>
<PackageRate>
<TrackingNumber>1Z12345X0342721665</TrackingNumber>
<PackageCharges>
<Rate>
<Published>12.83</Published>
<Negotiated>0.00</Negotiated>
</Rate>
</PackageCharges>
<Delivery_AreaSurcharge>
<Rate>
<Published>2.85</Published>
<Negotiated>0.00</Negotiated>
</Rate>
</Delivery_AreaSurcharge>
</PackageRate>
</PackageRates>
</ShipmentRates>
<TrackingNumbers>
<TrackingNumber>1Z12345X0342721665</TrackingNumber>
</TrackingNumbers>
<ImportID></ImportID>
<Reference1>100516</Reference1>
<Reference2></Reference2>
<ShipmentID></ShipmentID>
<PRONumber></PRONumber>
</ProcessMessage>
</OpenShipment>
</OpenShipments>
【问题讨论】:
-
尝试将您的
$(xml).find('OpenShipments').each(function(){更改为$(xml).find('OpenShipment').each(function(){
标签: javascript jquery xml vbscript xml-parsing