使用htmlagility,我正在搜索由select組成的dom結構中的文本節點。htmlagilitypack文本節點的父級是選擇而不是選項?
<select>
<option>
one
</option>
<option>
two
</option>
</select>
這些節點的父母似乎是
<select>
代替
<option>
爲什麼?
using System.IO;
using System.Linq;
using HtmlAgilityPack;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Foo.Test
{
[TestClass]
public class HtmlAgilityTest
{
[TestMethod]
public void TestTraverseTextNodesInSelect()
{
var html = "<select><option>one</option><option>two</option></select>";
var doc = new HtmlDocument();
doc.Load(new StringReader(html));
var elements = doc.DocumentNode.Descendants().Where(n=>n.Name == "#text");
Assert.AreEqual(2, elements.Count());
Assert.AreEqual("select", elements.ElementAt(0).ParentNode.Name);
Assert.AreEqual("select", elements.ElementAt(1).ParentNode.Name);
}
}
}
這將是很清楚,爲什麼HAP工作這樣,如果你能看到HAP如何讀取HTML:'Console.WriteLine(doc.DocumentNode.OuterHtml)' – har07