2

我有一串html

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

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

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

4

2 回答 2

2

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

于 2013-09-18T20:42:43.430 回答
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 元素,则可能需要使搜索更智能一些。

于 2013-09-18T21:00:06.203 回答