问题描述
如何使用 Javascript/jQuery 获取 XML 节点的属性值?
How do I get the attribute value of an XML node with Javascript / jQuery?
我正在尝试获取节点上duration属性的值,然后获取fixedValue.
I'm trying to get the value of the duration attribute on the node, then get the fixedValue.
<loanAmount> <interestRates> <interestRate allowInterestOnly="true" type="variable" value="5.82"/> <interestRate allowFixed="true" allowInterestOnly="true" duration="1" fixedInterestOnlyValue="5.7" fixedValue="5.7" variableInterestOnlyValue="5.82"/> <interestRate allowFixed="true" allowInterestOnly="true" duration="3" fixedInterestOnlyValue="5.75" fixedValue="5.75" variableInterestOnlyValue="5.82"/> <interestRate allowFixed="true" allowInterestOnly="true" duration="5" fixedInterestOnlyValue="6.64" fixedValue="6.56" variableInterestOnlyValue="5.82"/> <interestRate allowFixed="true" allowInterestOnly="true" duration="10" variableInterestOnlyValue="5.82"/> </interestRates> </loanAmount>'
到目前为止,我得到了:
So far I've got:
var currentLoanRates = function() { var currLoanXml = '<loanAmount><interestRates><interestRate allowInterestOnly="true" type="variable" value="5.82"/><interestRate allowFixed="true" allowInterestOnly="true" duration="1" fixedInterestOnlyValue="5.7" fixedValue="5.7" variableInterestOnlyValue="5.82"/><interestRate allowFixed="true" allowInterestOnly="true" duration="3" fixedInterestOnlyValue="5.75" fixedValue="5.75" variableInterestOnlyValue="5.82"/><interestRate allowFixed="true" allowInterestOnly="true" duration="5" fixedInterestOnlyValue="6.64" fixedValue="6.56" variableInterestOnlyValue="5.82"/><interestRate allowFixed="true" allowInterestOnly="true" duration="10" variableInterestOnlyValue="5.82"/></interestRates></loanAmount>', xmlDoc = $.parseXML( currLoanXml ), $xml = $( xmlDoc ), $intRate = $xml.find("interestRate"), $varIntRate = $intRate.attr("fixedValue"); console.log($intRate); console.log($varIntRate); };
第二个 console.log 打印 undefined.
The second console.log prints undefined.
推荐答案
我遇到的第一个问题是 currLoadXml 不是字符串.它需要用单引号括起来.
The first problem I ran into is that currLoadXml is not a string. It needs to be wrapped inside single quotes.
试试下面的方法
var currentLoanRates = function() { var currLoanXml = '<loanAmount><interestRates><interestRate allowInterestOnly="true" type="variable" value="5.82"/><interestRate allowFixed="true" allowInterestOnly="true" duration="1" fixedInterestOnlyValue="5.7" fixedValue="5.7" variableInterestOnlyValue="5.82"/><interestRate allowFixed="true" allowInterestOnly="true" duration="3" fixedInterestOnlyValue="5.75" fixedValue="5.75" variableInterestOnlyValue="5.82"/><interestRate allowFixed="true" allowInterestOnly="true" duration="5" fixedInterestOnlyValue="6.64" fixedValue="6.56" variableInterestOnlyValue="5.82"/><interestRate allowFixed="true" allowInterestOnly="true" duration="10" variableInterestOnlyValue="5.82"/></interestRates></loanAmount>', xmlDoc = $.parseXML( currLoanXml ), $xml = $( xmlDoc ), $intRate = $xml.find("interestRate"); $intRate.each(function(index, element) { if(element.attributes["duration"]) { console.log("Duration :" + element.attributes["duration"].value); } if(element.attributes["fixedValue"]) { console.log("Fixed value:" + element.attributes["fixedValue"].value); } }); };