2017-05-16 78 views
-3

我的吉文斯是通過XML格式字符串在C#中循環

int random = 3; 
string xml = "<Numbers> <Num>1</Num> <Num>2</Num> <Num>3</Num> <Num>4</Num><Num>5</Num> </Numbers>"; 

我想通過這個字符串進行迭代,發現如果隨機是<Num></Num>之間的數字。有沒有在C#Visual Studio中做到這一點的方法?

+5

應該是XML,會導致心不是XML ... – maccettura

+2

你'字符串xml' ...和編輯後它不是有效的代碼。請給我們看[mcve]。 –

+0

沒有它應該是一個XML形式的字符串 –

回答

0

使用XDocument,您可以輕鬆查詢並檢查數字是否存在於您的XML中。

// XML content 
    string xml = "<Numbers>" + 
        "<Num>1</Num>" + 
        "<Num>2</Num>" + 
        "<Num>3</Num>" + 
        "<Num>4</Num>" + 
        "<Num>5</Num>" + 
       "</Numbers>"; 

將字符串加載到XDocument中。如果您從文件中讀取,請改用XDocument.Load(pathname)

var doc = XDocument.Parse(xml); 

檢查隨機數是否存在。

  1. 採取由號碼的所有元素

  2. 選擇值裏面

  3. 轉換的結果字符串數組

  4. 檢查數組包含隨機數

    int random = 3; 
    bool exists = doc.XPathSelectElement("Numbers") 
        .Elements() 
        .Select(x => x.Value) 
        .ToArray() 
        .Contains(random.ToString()); 
    

確保包括這些命名空間

 using System.Xml.Linq; 
    using System.Xml.XPath; 
0

有很多方法可以做到這一點,最簡單的很可能是使用IndexOf

if(xml.IndexOf("<Num>"+ random.ToString() + "</Num>") > -1) 
{ 
    // found it! 
} 
0

分析XML到XElement和查詢號碼列表:

var numList = XElement.Parse(xml) 
    .Elements("Num") 
    .Select(x => (int) x) 
    .ToList(); 

,然後檢查你的random號碼在該列表:

numList.Contains(random); 

的演示中看到this fiddle