2012-11-16 56 views
1

我想從xml中使用xpath讀取值。 我已經創建了XmlNamespaceManager,並使用我的xml文件將所有前綴uri對添加到它。SelectSingleNode:跳過意想不到的xpath

我有一套xpaths與我,我需要遍歷所有xpaths和從xml搜索相關數據。

我使用下面的代碼

if (myXmlDocument.DocumentElement != null) 
{ 
    var selectSingleNode = myXmlDocument.DocumentElement.SelectSingleNode(xPath, myNamespaceManager); 
    if (selectSingleNode != null) 
     value = selectSingleNode.InnerText; 
} 

我的問題是 - 當我通過這樣的XPath,其前綴不是蓋的XML(所以我namespaceManager不包含其前綴或命名空間)內,它會拋出一個異常「名稱空間前綴'XXX'未定義。」

我只想跳過這種意外的xpath。

有沒有什麼好的解決方案呢?

回答

2

作爲一個快速修復,我使用try catch並檢查異常是否爲XPathException類型,並且消息包含「命名空間前綴*未定義」,則跳過它,但我真的不喜歡這樣。