2017-01-05 65 views
-2

我對編程相當陌生,需要檢查XML文件中的單個節點是否存在某個值,並且需要檢查該值是否正確。如何讀取XML節點的值並檢查值是否正確

我需要在3個不同的類別,以驗證這3個節點:

<RunCodeAnalysis>true</RunCodeAnalysis>  

我需要從一個XML文件中選擇這個特定的節點,需要檢查節點的值是真的,我希望得到一些幫助驗證,如果值是實際上可以真正

private void CodeAnalysisEnabled(XDocument xmlDoc) 
{ 
    var codeAnalysis = from doc in xmlDoc.Root?.Descendants("RunCodeAnalysis") select doc; 

    foreach (var codeAnalysisNode in codeAnalysis) 
    { 
     codeAnalysisNode.Value = "true"; 
    } 
} 
+3

請提供一個[mcve] - 我個人推薦使用LINQ to XML,那麼你甚至可能甚至不需要使用'SelectSingleNode',並且它會更容易檢查值等。在你的問題是我恐怕對我們來說太模糊,無法幫助你。 –

+0

請編輯*問題*,而不是僅添加評論。 –

+0

那麼你仍然沒有顯示任何你到目前爲止的代碼,或者什麼是「有效」的...... –

回答

0

加載XML和使用XPath搜索標籤:

var document = new XmlDocument(); 
document.Load(fileName); 
var root = document.DocumentElement 
var nodes = root.SelectNodes("//RunCodeAnalysis"); 

此示例從XML中選擇所有RunCodeAnalysis節點。使用XPath,你可以精確選擇你想要的。 Check this MSDN article

+0

我個人使用LINQ to XML來處理那個 - 'XDocument doc = XDocument.Load(fileName ); var nodes = root.Descendants(「RunCodeAnalysis」);' –

+0

@JonSkeet hey jon我選擇了工作,現在用代碼更新了問題,以及我需要做什麼。你能再看一次嗎? – Pagodatree

+0

@Pagodatree:不,因爲它仍然不清楚你想要達到的目標。您目前正在修改*所有的值 - 並且使用LINQ沒有任何明顯的原因 - 我認爲您正在嘗試*檢查它們? –