用Javascript解析XML
我有一个返回数据的XML提要。我试图为标记创建一个元素数组,但即使填充了数据,数组的长度也始终为零用Javascript解析XML,javascript,xml,xml-parsing,Javascript,Xml,Xml Parsing,我有一个返回数据的XML提要。我试图为标记创建一个元素数组,但即使填充了数据,数组的长度也始终为零 $.ajax({ url: submitUrl, type: "POST", dataType: "xml", data: { request: soapRequest, endPoint: soapEndPoint, header: so
$.ajax({
url: submitUrl,
type: "POST",
dataType: "xml",
data: { request: soapRequest, endPoint: soapEndPoint, header: soapHeader },
error: function() {
$('#consolelog').html('<p>Failure.</p>');
},
success: function(soapResponse) {
if (window.DOMParser) {
parser=new DOMParser();
xmlDoc=parser.parseFromString(soapResponse,"text/xml");
}
else { //IE
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.loadXML(soapResponse);
}
consoleID = document.getElementById('consoleLog');
consoleID.appendChild(document.createTextNode("xmlDoc = " + xmlDoc));
linebreak = document.createElement('br');
consoleID.appendChild(linebreak);
var xmlArray = xmlDoc.getElementsByTagName("FAgent");
consoleID = document.getElementById('consoleLog');
consoleID.appendChild(document.createTextNode("XMLArray length = " + xmlArray.length));
linebreak = document.createElement('br');
consoleID.appendChild(linebreak);
consoleID = document.getElementById('consoleLog');
consoleID.appendChild(document.createTextNode("XML Doc = " + xmlDoc.documentElement.childNodes));
linebreak = document.createElement('br');
consoleID.appendChild(linebreak);
我想在数组中循环,但由于它的长度为0,我不知道如何访问元素
当我在browser developer控制台上检查inspector时,soap响应也显示为一个文件
XML是
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GenerateQuotesResponse xmlns="http://www.xxxxx.yyyyy/">
<GenerateQuotesResult>
<CustomerName>Test</CustomerName>
<Supplier/>
<QuoteDate>2012-11-28T08:06:04.3860424-06:00</QuoteDate>
<QuoteStatus>0</QuoteStatus>
<QuoteStatusMessage/>
<As>
<Apt>
<AptStatusCode>0</AptStatusCode>
<AptStatusMessage>Apt Processing Successful</AptStatusMessage>
<IO>KAL</IO>
<IA>AL</IA>
<FAgents>
<FAgent>
<ContractID>2553</ContractID>
<AgentName>Test</AgentName>
<Address1>Test Ave.</Address1>
<Address2/>
<PostalCode/>
<Phone/>
<FAX/>
<UnitOfMeasure>US</UnitOfMeasure>
<Currency>USD</Currency>
<TaxesIncluded>YES</TaxesIncluded>
<ColtCardAccepted>YES</ColtCardAccepted>
<Note/>
<AgentStatusCode>0</AgentStatusCode>
<AgentStatusMessage>Agent Processing Successful</AgentStatusMessage>
<PricingTiers>
<PricingTier>
<LowVolume>0.00</LowVolume>
<HighVolume>249.00</HighVolume>
<UnitPrice>5.15</UnitPrice>
<VolUOM>US</VolUOM>
<FormattedPrice>5.15</FormattedPrice>
<CurrCode>USD</CurrCode>
</PricingTier>
<PricingTier>
<LowVolume>250.00</LowVolume>
<HighVolume>499.00</HighVolume>
<UnitPrice>5.00</UnitPrice>
<VolUOM>US</VolUOM>
<FormattedPrice>5.00</FormattedPrice>
<CurrCode>USD</CurrCode>
</PricingTier>
<PricingTier>
<LowVolume>2000.00</LowVolume>
<HighVolume>999999.00</HighVolume>
<UnitPrice>4.55</UnitPrice>
<VolUOM>US</VolUOM>
<FormattedPrice>4.55</FormattedPrice>
<CurrCode>USD</CurrCode>
</PricingTier>
</PricingTiers>
</FAgent>
<FAgent>
<ContractID>5xxx</ContractID>
<AgentName>test 2</AgentName>
<Address1/>
<Address2/>
<PostalCode/>
<Phone/>
<FAX/>
<UnitOfMeasure>US</UnitOfMeasure>
<Currency>USD</Currency>
<TaxesIncluded>YES</TaxesIncluded>
<ColtCardAccepted>YES</ColtCardAccepted>
<Note>Test 7</Note>
<AgentStatusCode>0</AgentStatusCode>
<AgentStatusMessage>Agent Processing Successful</AgentStatusMessage>
<PricingTiers>
<PricingTier>
<LowVolume>0.00</LowVolume>
<HighVolume>500.00</HighVolume>
<UnitPrice>4.80</UnitPrice>
<VolUOM>US</VolUOM>
<FormattedPrice>4.80</FormattedPrice>
<CurrCode>USD</CurrCode>
</PricingTier>
<PricingTier>
<LowVolume>501.00</LowVolume>
<HighVolume>1000.00</HighVolume>
<UnitPrice>4.55</UnitPrice>
<VolUOM>US</VolUOM>
<FormattedPrice>4.55</FormattedPrice>
<CurrCode>USD</CurrCode>
</PricingTier>
</PricingTiers>
</FAgent>
</FAgents>
</Apt>
</As>
</GenerateQuotesResult>
</GenerateQuotesResponse>
</soap:Body>
</soap:Envelope>
试验
2012-11-28 08:06:04.3860424-06:00
0
0
Apt处理成功
卡尔
艾尔
2553
试验
测试大道。
美国
美元
对
对
0
代理处理成功
0
249
5.15
美国
5.15
美元
250
499
5
美国
5
美元
2000
999999
4.55
美国
4.55
美元
5xxx
测试2
美国
美元
对
对
测试7
0
代理处理成功
0
500
4.80
美国
4.80
美元
501
1000
4.55
美国
4.55
美元
XML文档是区分大小写的,因此请确保您实际拥有的元素与HTML不同。您是否可以使用我不了解的示例XML数据更新您的帖子。你的密码和我的一模一样。在你的提琴中查看这一点FAgent有一个文本值,但我的有一个层次结构,它可能是reason@MB. 不是因为xmlArray
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GenerateQuotesResponse xmlns="http://www.xxxxx.yyyyy/">
<GenerateQuotesResult>
<CustomerName>Test</CustomerName>
<Supplier/>
<QuoteDate>2012-11-28T08:06:04.3860424-06:00</QuoteDate>
<QuoteStatus>0</QuoteStatus>
<QuoteStatusMessage/>
<As>
<Apt>
<AptStatusCode>0</AptStatusCode>
<AptStatusMessage>Apt Processing Successful</AptStatusMessage>
<IO>KAL</IO>
<IA>AL</IA>
<FAgents>
<FAgent>
<ContractID>2553</ContractID>
<AgentName>Test</AgentName>
<Address1>Test Ave.</Address1>
<Address2/>
<PostalCode/>
<Phone/>
<FAX/>
<UnitOfMeasure>US</UnitOfMeasure>
<Currency>USD</Currency>
<TaxesIncluded>YES</TaxesIncluded>
<ColtCardAccepted>YES</ColtCardAccepted>
<Note/>
<AgentStatusCode>0</AgentStatusCode>
<AgentStatusMessage>Agent Processing Successful</AgentStatusMessage>
<PricingTiers>
<PricingTier>
<LowVolume>0.00</LowVolume>
<HighVolume>249.00</HighVolume>
<UnitPrice>5.15</UnitPrice>
<VolUOM>US</VolUOM>
<FormattedPrice>5.15</FormattedPrice>
<CurrCode>USD</CurrCode>
</PricingTier>
<PricingTier>
<LowVolume>250.00</LowVolume>
<HighVolume>499.00</HighVolume>
<UnitPrice>5.00</UnitPrice>
<VolUOM>US</VolUOM>
<FormattedPrice>5.00</FormattedPrice>
<CurrCode>USD</CurrCode>
</PricingTier>
<PricingTier>
<LowVolume>2000.00</LowVolume>
<HighVolume>999999.00</HighVolume>
<UnitPrice>4.55</UnitPrice>
<VolUOM>US</VolUOM>
<FormattedPrice>4.55</FormattedPrice>
<CurrCode>USD</CurrCode>
</PricingTier>
</PricingTiers>
</FAgent>
<FAgent>
<ContractID>5xxx</ContractID>
<AgentName>test 2</AgentName>
<Address1/>
<Address2/>
<PostalCode/>
<Phone/>
<FAX/>
<UnitOfMeasure>US</UnitOfMeasure>
<Currency>USD</Currency>
<TaxesIncluded>YES</TaxesIncluded>
<ColtCardAccepted>YES</ColtCardAccepted>
<Note>Test 7</Note>
<AgentStatusCode>0</AgentStatusCode>
<AgentStatusMessage>Agent Processing Successful</AgentStatusMessage>
<PricingTiers>
<PricingTier>
<LowVolume>0.00</LowVolume>
<HighVolume>500.00</HighVolume>
<UnitPrice>4.80</UnitPrice>
<VolUOM>US</VolUOM>
<FormattedPrice>4.80</FormattedPrice>
<CurrCode>USD</CurrCode>
</PricingTier>
<PricingTier>
<LowVolume>501.00</LowVolume>
<HighVolume>1000.00</HighVolume>
<UnitPrice>4.55</UnitPrice>
<VolUOM>US</VolUOM>
<FormattedPrice>4.55</FormattedPrice>
<CurrCode>USD</CurrCode>
</PricingTier>
</PricingTiers>
</FAgent>
</FAgents>
</Apt>
</As>
</GenerateQuotesResult>
</GenerateQuotesResponse>
</soap:Body>
</soap:Envelope>