在xml文件中读取2个html标签之间的文本

时间:2016-11-21 19:55:49

标签: c# regex

我正在尝试在xml文件中读取2个html标记之间的文本。它适用于小内容,但是当内容很大时,它会失败并返回空。什么是高级别的问题

  Regex regex = new Regex("<strong>(.*)</strong>");
      var v = regex.Match("Unneeded text <strong>Needed Text</strong> More unneeded text");
      string s = v.Groups[1].ToString();

2 个答案:

答案 0 :(得分:0)

请尝试以下方法。我怀疑你在标签之间有大文字。我还添加了.*?,以防您的数据中有多对标记。

Regex regex = new Regex("<strong>(.*?)</strong>", RegexOptions.Singleline);
  

单线指定单线模式。改变点的含义   (。)所以它匹配每个字符(而不是每个字符除外)   \ n)的。 RegexOptions Enumeration

答案 1 :(得分:0)

我尝试了以下代码并且它有效。感谢您的时间和建议

        var filePath = @"D:\myfile.xml";
        var fileData = File.ReadAllText(filePath);
        XDocument doc = XDocument.Parse(fileData);

        foreach (XElement hashElement in doc.Descendants("mytagname"))
        {
            string hashValue = (string)hashElement;
        }