[.NET] Html converteren naar Xml?

Pagina: 1
Acties:

  • MrBucket
  • Registratie: Juli 2003
  • Laatst online: 29-10-2022
Ik wil graag screen-scraping toepassen op een aantal webpagina's door middel van XSLT. Echter, het probleem is dat de HTML die in die pagina's is gebruikt geen XHTML is; m.a.w.: het voldoet niet aan de eisen die XML stelt aan een document. Bovendien wil ik dit scrapen geautomatiseerd laten toepassen; eenmalig handmatig opschonen zit er dus niet in.

Nu ben ik dus op zoek naar een Html naar Xml-converter in .Net, een library wat een html-document omsmurft naar geldige xml.

De meest bekende library hiervoor is volgens mij HTML Tidy, die kan volgens mij precies wat ik zoek. Echter, dit is een C-library. Op http://users.rcn.com/creitzel/tidy.html#dotnet geven ze als mogelijkheden om dit in .NET te gebruiken via PInvoke, via Managed C++ of via COM Interop, en dit zijn eigenlijk alle 3 geen ideale oplossingen.

Wat echt ranzig is, maar wat evt. ook nog zou kunnen is om weer via screen-scraping de webpagina op http://infohound.net/tidy/ te gebruiken om dit voor elkaar te krijgen. Met alle nadelen van dien.

Het punt is, alle native .Net implementaties lijken ofwel niet meer dan uitprobeersels (http://www.fawcette.com/v...ne_eprods/c_wagner_03_18/, http://www.codeproject.com/useritems/htmltoxmlconverter.asp), of commerciele producten.

Ik kan me niet voorstellen dat ik de enige ben die tegen dit gemis aanloop... hoe / met welke libraries doen jullie dit?

  • TlighT
  • Registratie: Mei 2000
  • Laatst online: 28-05-2025
Ik denk dat .NET Html Agility Pack wel kan wat jij wilt.

  • MrBucket
  • Registratie: Juli 2003
  • Laatst online: 29-10-2022
Hey, hardstikke bedankt :)

Ik heb in de tussentijd nog wat lopen zoeken naar een versie van HTML Tidy die makkelijk in . NET te gebruiken zou zijn, maar ik kwam alleen maar oude versies tegen op sourceforge (2001?!), en een recentere versie van TidyLib (Nov 2005, op http://dev.int64.org/tidy.html) die ik vond is in C geschreven en zodanig opgezet dat het niet met goed fatsoen aan te spreken was met PInvoke.
En alle .NET wrappers ervoor die ik tegenkwam waren allemaal gebaseerd op Interop (m.a.w.: TidyLib als COM-component), wat een puinhoop geeft met deployen.

Maar ik heb nu inmiddels die HtmlAgilityPack aan de praat, en het werkt als een tierelier :)