如何知道字符串中是否包含XML數據或不使用java腳本?如何知道字符串包含xml數據還是不用javascript?
我正在使用以下代碼。
if(str.substr(1,5) == '<?xml')
{
alert("xml data");
}else{
alert('not an xml data');
}
的問題是什麼?XML ............. 標記,以便該代碼是不是爲我工作
有時我的XML(STR)數據不包含如何知道字符串中是否包含XML數據或不使用java腳本?如何知道字符串包含xml數據還是不用javascript?
我正在使用以下代碼。
if(str.substr(1,5) == '<?xml')
{
alert("xml data");
}else{
alert('not an xml data');
}
的問題是什麼?XML ............. 標記,以便該代碼是不是爲我工作
有時我的XML(STR)數據不包含可以使用的indexOf()
if(str.indexOf('<?xml') != -1){
}else{}
據我所知所有的XML標籤與<
一個號開始,所以你可以看它:
if(str.indexOf('<') !== -1)
.indexOf()
返回-1
如果沒有找到,否則找到的索引。
好的,但每個html標籤也以<符號開頭。如果數據只是XML,我想執行一些操作。 – user3599578
我在這裏建議使用兩個可能的選擇:
這一個是使用jquery 1.9.1。你可以簡單地將你的字符串傳遞給它,它會嘗試解析它。如果完成 - 將返回大於0的長度。否則 - 如果字符串格式不正確,將返回0或拋出異常。 工作示例在這裏:http://jsfiddle.net/fqCNL/
這一個是使用javascript DOM解析器。 邏輯非常相似。您應該嘗試使用解析器解析字符串。如果它的firsChild沒有被定義,並且firstChildElement本地名稱是'parsererror' - 那麼它不是xml或無效的xml。如果失敗,也應該處理異常 - 這也意味着這是簡單的字符串,而不是有效的xml。 工作樣本是在這裏:http://jsfiddle.net/MwKcq/ 注意,對於這種方法(主要用於IE)的跨瀏覽器的工作 - 你必須檢查if (window.DOMParser)
,如果不存在的話 - 用於解析另一部分:
xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async=false; xmlDoc.loadXML(text);
但我的XML數據是這樣的 託弗 賈尼 提醒 不要忘了我 這週末! –
user3599578
你用我的方法看到了什麼問題?你已經試過了嗎? – jayaguilar
是的,我嘗試過.my XML數據來自服務器,有時它是不正確的XML,這意味着它不包含<?xml version =「1.0」encoding =「UTF-8」?>標記在那種情況下它不是爲我工作,請提供任何其他解決方案。 – user3599578