Gabe
Gabe

Reputation: 50483

HtmlAgilityPack invalid markup

I am using the HtmlAgilityPack from codeplex. When I pass a simple html string into it and then get the resulting html back, it cuts off tags.

Example:

string html = "<select><option>test</option></select>";
HtmlDocument document = new HtmlDocument();
document.LoadHtml(html);

var result = d.DocumentNode.OuterHtml;

// result gives me:
<select><option>test</select>

So the closing tag for the option is missing. Am I missing a setting or using this wrong?

Upvotes: 1

Views: 1997

Answers (2)

Gabe
Gabe

Reputation: 50483

I fixed this by commenting out line 92 of HtmlNode.cs in the source, compiled and it worked like a charm.

ElementsFlags.Add("option", HtmlElementFlag.Empty); // comment this out

Found the answer on this question

Upvotes: 4

lhan
lhan

Reputation: 4635

In HTML the tag has no end tag.

In XHTML the tag must be properly closed.

http://www.w3schools.com/tags/tag_option.asp

"There is also no adherence to XHTML or XML" - HTML Agility Pack.

This could be why? My guess is that if the tag is optional, the Agility Pack will leave it off. Hope this helps!

Upvotes: 0

Related Questions