2013-09-18 26 views
2

У меня есть строка HTMLРазбор части кода html как XDocument?

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

, что я хотел бы разобрать значение Src из. Моя мысль заключалась в том, чтобы прочитать строку в xdocument, а затем использовать linq для получения значения.

Возможно ли это? Правильно ли это?

+0

Выполняется ли синтаксический разбор? –

+0

Чтобы разобрать html, используйте парсер html. http://htmlagilitypack.codeplex.com/ – I4V

ответ

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; 
     } 
    } 
    } 
} 

Это даст вам первое значение src элемента iframe. Если у вас больше элементов iframe, вам может потребоваться сделать поиск более умным.

2

Используйте htmlagilitypack, загрузите его как html и вызовите selectsinglemethod с помощью xpath // iframe, а на узле используйте свойство Attributes с параметром src и возьмите свойство value из этого.

Смежные вопросы