Skip to content

Commit 1088dce

Browse files
committed
Defensive code on empty bookmark
1 parent 67340a3 commit 1088dce

File tree

2 files changed

+3
-1
lines changed

2 files changed

+3
-1
lines changed

src/Html2OpenXml/Expressions/BodyExpression.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ private void MarkAllBookmarks()
105105
var links = node.QuerySelectorAll("a[href^='#']");
106106
if (links.Length == 0) return;
107107

108-
foreach (var link in links.Cast<IHtmlAnchorElement>())
108+
foreach (var link in links.Cast<IHtmlAnchorElement>().Where(l => l.Hash.Length > 0))
109109
{
110110
var id = link.Hash.Substring(1);
111111
var target = node.Owner!.GetElementById(id);

test/HtmlToOpenXml.Tests/LinkTests.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ public void ExternalLink_ShouldSucceed (string link)
3838

3939
[TestCase(@"<a href=""javascript:alert()"">Js</a>")]
4040
[TestCase(@"<a href=""site.com"">Unknown site</a>")]
41+
[TestCase(@"<a href=''>Empty link</a>")]
42+
[TestCase(@"<a href='#'>Empty bookmark</a>")]
4143
public void InvalidLink_ReturnsSimpleRun (string html)
4244
{
4345
// invalid link leads to simple Run with no link

0 commit comments

Comments
 (0)