解析一段HTML代码作为XDocument?

时间:2013-09-18 20:37:51

标签: c# xml

我有一串html

var myString = @"<iframe src="http://www.whatever.com/" frameborder="0"></iframe>";
XDocument test = XDocument.Parse(myString);

我想从中解析src值。我的想法是将字符串读入xdocument然后使用linq获取值。

这可能吗?这是正确的做法吗?

2 个答案:

答案 0 :(得分:2)

使用htmlagilitypack,将其加载为html并使用xpath // iframe调用Selectinginglemethod,并在节点上使用带有src参数的Attributes属性并从中获取value属性。

答案 1 :(得分:0)

var reader = new XmlTextReader("path/to/myHtmlFile.html");
while (reader.Read())
{
  // Keep reading until we hit an element called iframe
  if (reader.NodeType == XmlNodeType.Element && reader.Name == "iframe")
  {
    while (reader.MoveToNextAttribute())
    {
      // Keep moving to the next attribute until we hit one called src
      if (reader.Name == "src")
      {
        return reader.Value;
      }
    }
  }
}

这将获得第一个iframe元素的src值。如果你有更多的iframe元素,你可能需要让搜索变得更聪明。