File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 33using AngleSharp . Html . Parser ;
44using NUnit . Framework ;
55using System . Threading . Tasks ;
6+ using AngleSharp . Dom ;
67
78namespace AngleSharp . XPath . Tests
89{
@@ -116,5 +117,34 @@ public void SelectNodes_CanReturnAttribute()
116117 Assert . That ( nodes , Has . Count . EqualTo ( 2 ) ) ;
117118 Assert . That ( nodes , Is . All . InstanceOf < Dom . IAttr > ( ) ) ;
118119 }
120+
121+ [ Test ]
122+ public void TestNameXPathFunctionOnXMLDoc ( )
123+ {
124+ // Arrange
125+ var xml = @"<html><head><title>Test</title></head><body><h1>Test</h1></body></html>" ;
126+ var angleSharpXmlDoc = new XmlParser ( ) . ParseDocument ( xml ) ;
127+
128+ // Act
129+ var xmlNav = angleSharpXmlDoc . CreateNavigator ( ) ;
130+
131+ // Assert
132+ Assert . AreEqual ( TagNames . Html , xmlNav . Evaluate ( "name()" ) ) ;
133+ }
134+
135+ [ Test ]
136+ public void TestNameXPathFunctionOnHTMLDoc ( )
137+ {
138+ // Arrange
139+ var html = @"<html><head><title>Test</title></head><body><h1>Test</h1></body></html>" ;
140+
141+ var angleSharpHtmlDoc = new HtmlParser ( ) . ParseDocument ( html ) ;
142+
143+ // Act
144+ var htmlNav = angleSharpHtmlDoc . CreateNavigator ( ) ;
145+
146+ // Assert
147+ Assert . AreEqual ( TagNames . Html , htmlNav . Evaluate ( "name()" ) ) ;
148+ }
119149 }
120150}
Original file line number Diff line number Diff line change 11<Project Sdk =" Microsoft.NET.Sdk" >
22 <PropertyGroup >
3- <Version >2.0.0-alpha-1 </Version >
3+ <Version >2.0.0-alpha-2 </Version >
44 <AssemblyVersion >2.0.0</AssemblyVersion >
5- <FileVersion >2.0.0-alpha-1 </FileVersion >
5+ <FileVersion >2.0.0-alpha-2 </FileVersion >
66 <Authors >Denis Ivanov</Authors >
77 <PackageId >AngleSharp.XPath</PackageId >
88 <AssemblyName >AngleSharp.XPath</AssemblyName >
99 <RootNamespace >AngleSharp.XPath</RootNamespace >
10- <TargetFramework >net5.0</ TargetFramework >
10+ <TargetFrameworks >netstandard2.0;net46;net461;net472</ TargetFrameworks >
1111 <Description >XPath support for AngleSharp</Description >
1212 <PackageProjectUrl >https://github.com/AngleSharp/AngleSharp.XPath/</PackageProjectUrl >
1313 <PackageLicenseExpression >MIT</PackageLicenseExpression >
Original file line number Diff line number Diff line change @@ -52,10 +52,23 @@ CurrentNode is IAttr attr
5252 : NameTable . GetOrAdd ( CurrentNode is IElement e ? e . LocalName : string . Empty ) ;
5353
5454 /// <inheritdoc />
55- public override string Name =>
56- CurrentNode is IAttr attr
57- ? NameTable . GetOrAdd ( attr . Name )
58- : NameTable . GetOrAdd ( _currentNode . NodeName ) ;
55+ public override string Name
56+ {
57+ get
58+ {
59+ if ( CurrentNode is IAttr attr )
60+ {
61+ return NameTable . GetOrAdd ( attr . Name ) ;
62+ }
63+
64+ if ( CurrentElement != null )
65+ {
66+ return NameTable . GetOrAdd ( CurrentElement . LocalName ) ;
67+ }
68+
69+ return NameTable . GetOrAdd ( _currentNode . NodeName ) ;
70+ }
71+ }
5972
6073 /// <inheritdoc />
6174 public override string NamespaceURI
You can’t perform that action at this time.
0 commit comments