我有一串html
var myString = @"<iframe src="http://www.whatever.com/" frameborder="0"></iframe>";
XDocument test = XDocument.Parse(myString);
我想从中解析 src 值。我的想法是将字符串读入 xdocument,然后使用 linq 获取值。
这可能吗?这是正确的方法吗?
使用htmlagilitypack,将其加载为html并使用xpath //iframe调用selectsinglemethod,并在节点上使用带有src参数的Attributes属性并从中获取value属性。
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 元素,则可能需要使搜索更智能一些。