From a22812ca8ee8ea15f4c9c383bafe9a932b0a3839 Mon Sep 17 00:00:00 2001 From: Jonathan Magnan Date: Sun, 18 Jun 2023 20:21:11 -0400 Subject: [PATCH] Fix "Name" property --- src/HtmlAgilityPack.Shared/HtmlDocument.cs | 3 +- src/HtmlAgilityPack.Shared/HtmlNode.cs | 33 +++++++++++++--------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/src/HtmlAgilityPack.Shared/HtmlDocument.cs b/src/HtmlAgilityPack.Shared/HtmlDocument.cs index 3c0def8b..f02758b5 100644 --- a/src/HtmlAgilityPack.Shared/HtmlDocument.cs +++ b/src/HtmlAgilityPack.Shared/HtmlDocument.cs @@ -519,7 +519,7 @@ public HtmlNode CreateElement(string name) } HtmlNode node = CreateNode(HtmlNodeType.Element); - node.Name = name; + node.SetName(name); return node; } @@ -1885,6 +1885,7 @@ private bool IsParentImplicitEnd() || nodeName == "h6" || nodeName == "header" || nodeName == "hr" + || nodeName == "li" || nodeName == "menu" || nodeName == "nav" || nodeName == "ol" diff --git a/src/HtmlAgilityPack.Shared/HtmlNode.cs b/src/HtmlAgilityPack.Shared/HtmlNode.cs index 629833c6..9ac347c4 100644 --- a/src/HtmlAgilityPack.Shared/HtmlNode.cs +++ b/src/HtmlAgilityPack.Shared/HtmlNode.cs @@ -153,17 +153,17 @@ public HtmlNode(HtmlNodeType type, HtmlDocument ownerdocument, int index) switch (type) { case HtmlNodeType.Comment: - Name = HtmlNodeTypeNameComment; + SetName(HtmlNodeTypeNameComment); _endnode = this; break; case HtmlNodeType.Document: - Name = HtmlNodeTypeNameDocument; + SetName(HtmlNodeTypeNameDocument); _endnode = this; break; case HtmlNodeType.Text: - Name = HtmlNodeTypeNameText; + SetName(HtmlNodeTypeNameText); _endnode = this; break; } @@ -600,7 +600,7 @@ public string Name if (_optimizedName == null) { if (_name == null) - Name = _ownerdocument.Text.Substring(_namestartindex, _namelength); + SetName(_ownerdocument.Text.Substring(_namestartindex, _namelength)); if (_name == null) _optimizedName = string.Empty; @@ -612,12 +612,18 @@ public string Name return _optimizedName; } - set - { - _name = value; - _optimizedName = null; + set + { + SetName(value); + SetChanged(); } - } + } + + internal void SetName(string value) + { + _name = value; + _optimizedName = null; + } /// /// Gets the HTML node immediately following this element. @@ -1046,7 +1052,7 @@ public HtmlNode CloneNode(string newName, bool deep) } HtmlNode node = CloneNode(deep); - node.Name = newName; + node.SetName(newName); return node; } @@ -1058,7 +1064,7 @@ public HtmlNode CloneNode(string newName, bool deep) public HtmlNode CloneNode(bool deep) { HtmlNode node = _ownerdocument.CreateNode(_nodetype); - node.Name = OriginalName; + node.SetName(OriginalName); switch (_nodetype) { @@ -2159,10 +2165,9 @@ public void SetParent(HtmlNode parent) } } -#endregion - -#region Internal Methods + #endregion + #region Internal Methods internal void SetChanged() { _changed = true;