2014-05-03 42 views
0

如何知道字符串中是否包含XML數據或不使用java腳本?如何知道字符串包含xml數據還是不用javascript?

我正在使用以下代碼。

if(str.substr(1,5) == '<?xml') 
{ 
alert("xml data"); 
}else{ 
alert('not an xml data'); 
} 

的問題是什麼?XML ............. 標記,以便該代碼是不是爲我工作

有時我的XML(STR)數據不包含

回答

0

可以使用的indexOf()

if(str.indexOf('<?xml') != -1){ 
}else{} 
+0

但我的XML數據是這樣的 託弗 賈尼 提醒 不要忘了我 這週末! user3599578

+0

你用我的方法看到了什麼問題?你已經試過了嗎? – jayaguilar

+0

是的,我嘗試過.my XML數據來自服務器,有時它是不正確的XML,這意味着它不包含<?xml version =「1.0」encoding =「UTF-8」?>標記在那種情況下它不是爲我工作,請提供任何其他解決方案。 – user3599578

0

據我所知所有的XML標籤與<一個號開始,所以你可以看它:

if(str.indexOf('<') !== -1) 

.indexOf()返回-1如果沒有找到,否則找到的索引。

+0

好的,但每個html標籤也以<符號開頭。如果數據只是XML,我想執行一些操作。 – user3599578

0

我在這裏建議使用兩個可能的選擇:

  1. 這一個是使用jquery 1.9.1。你可以簡單地將你的字符串傳遞給它,它會嘗試解析它。如果完成 - 將返回大於0的長度。否則 - 如果字符串格式不正確,將返回0或拋出異常。 工作示例在這裏:http://jsfiddle.net/fqCNL/

  2. 這一個是使用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);

相關問題