我的吉文斯是通過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中做到這一點的方法?
我的吉文斯是通過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中做到這一點的方法?
使用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);
檢查隨機數是否存在。
採取由號碼的所有元素
選擇值裏面
轉換的結果字符串數組
檢查數組包含隨機數
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;
有很多方法可以做到這一點,最簡單的很可能是使用IndexOf
:
if(xml.IndexOf("<Num>"+ random.ToString() + "</Num>") > -1)
{
// found it!
}
在這個環節你有一個簡單的方法,通過一個XML閱讀:https://msdn.microsoft.com/es-es/library/cc189056(v=vs.95).aspx
如果您只需要你可以堅持Zohar Peled的答案的具體價值。
分析XML到XElement
和查詢號碼列表:
var numList = XElement.Parse(xml)
.Elements("Num")
.Select(x => (int) x)
.ToList();
,然後檢查你的random
號碼在該列表:
numList.Contains(random);
的演示中看到this fiddle。
應該是XML,會導致心不是XML ... – maccettura
你'字符串xml' ...和編輯後它不是有效的代碼。請給我們看[mcve]。 –
沒有它應該是一個XML形式的字符串 –