0
我試圖從XSD文檔中獲取一組元素。我已經下載並且正在使用最新版本的jQuery(1.7.2)。引用的XSD是http://www.w3.org/2001/XMLSchema.xsd本地拷貝我使用的代碼如下:XML中的JQuery選擇器
var xml;
$(function(){
$.ajax({
type:"GET",
url:"http://www.w3.org/2001/XMLSchema.xsd",//"xml/XMLSchema.xsd",
dataType: 'xml',
success:function(result){
xml = $(result);
}
});
});
這使我的XSD加載到「XML」可變但如預期,當我去查詢它,我結束了有一些令人困惑的結果。使用:
$('complexType[name=simpleType]', xml).attr("name")
$('complexType[name="simpleType"]', xml).attr("name")
回報「不確定」,然而與啓動,與結束,開始和返回正確的結果結束:
$('complexType[name^="simpleType"]', xml).attr("name")
$('complexType[name$="simpleType"]', xml).attr("name")
$('complexType[name$="simpleType"][name^="simpleType"]', xml).attr("name")
哪個是名「簡單類型」。 =有沒有理由爲什麼=不工作?
在此先感謝
這不工作,因爲我告訴你們,謝謝!當我沒有包含命名空間前綴,並且當^ =,$ =或* =用於匹配屬性值而不是僅僅匹配=時,是否有任何推理說明爲什麼節點匹配正確? – Meberem
@Meberem:不客氣!在我用^ =,$ =或* =進行所有測試的測試中得到'undefined'值。我可以想象,使用哪種瀏覽器和哪個版本可能很重要。通常jQuery被設計用於解析DOM而不是XML。用jQuery解析XML文檔不是最好的主意。使用'getElementsByTagNameNS':'result.documentElement.getElementsByTagNameNS(「http://www.w3.org/2001/XMLSchema」,「simpleType」)'然後測試循環中所有選定元素的屬性可以得到更好的結果。 – Oleg
感謝您的跟進!我認爲解析XML而不是純粹的DOM與jQuery可能是雄心勃勃的,我會看看你有什麼建議,再次感謝 – Meberem