在C#中以XML格式循环字符串

时间:2017-05-16 14:49:56

标签: c# xml

我的恩惠是

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

我想遍历此字符串并查找random是否是<Num></Num>之间的数字。有没有办法在C#Visual Studio中执行此操作?

4 个答案:

答案 0 :(得分:0)

有很多方法可以做到,最简单的可能就是使用IndexOf

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

答案 1 :(得分:0)

将您的XML解析为XElement并将数字查询到列表:

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

然后检查您的random号码是否在该列表中:

numList.Contains(random);

请参阅this fiddle了解演示。

答案 2 :(得分: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. 从Numbers

  2. 中获取所有元素
  3. 选择其中的值

  4. 将结果转换为字符串数组

  5. 检查数组是否包含随机数

    int random = 3;
    bool exists = doc.XPathSelectElement("Numbers")
      .Elements()
      .Select(x => x.Value)
      .ToArray()
      .Contains(random.ToString());
    
  6. 确保包含这些名称空间

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

答案 3 :(得分:-1)

在此链接中,您可以轻松阅读XML:https://msdn.microsoft.com/es-es/library/cc189056(v=vs.95).aspx

如果您只需要特定的价值,您可以坚持使用Zohar Peled的答案。