我有一串html
var myString = @"<iframe src="http://www.whatever.com/" frameborder="0"></iframe>";
XDocument test = XDocument.Parse(myString);
我想从中解析src值。我的想法是将字符串读入xdocument然后使用linq获取值。
这可能吗?这是正确的做法吗?
答案 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元素,你可能需要让搜索变得更聪明。