Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么';是否为交错文本生成文本节点?_C#_Html_Parsing_Text_Anglesharp - Fatal编程技术网

C# 为什么';是否为交错文本生成文本节点?

C# 为什么';是否为交错文本生成文本节点?,c#,html,parsing,text,anglesharp,C#,Html,Parsing,Text,Anglesharp,我正在尝试使用AngleSharp库解析一些HTML,到目前为止,这个库非常棒。我现在偶然发现了一个场景,我想解析以下HTML片段: <a name="someLink" href="#someLink">Link 1</a> Some text that happens to be in between elements... <b>Some stuff in bold</b> Some more text <br> 某些文本恰好

我正在尝试使用AngleSharp库解析一些HTML,到目前为止,这个库非常棒。我现在偶然发现了一个场景,我想解析以下HTML片段:

<a name="someLink" href="#someLink">Link 1</a>
Some text that happens to be in between elements...
<b>Some stuff in bold</b>
Some more text
<br>

某些文本恰好位于元素之间。。。
一些粗体字的东西
更多的文字

当然,这段HTML包含封闭的父元素等,但这段HTML的解析元素的结果列表是:

  • 兰蔻素
  • HtmlBoldElement
  • HTMLBREAKROWELENT
有效地跳过元素之间的文本。如何获取此文本?我想AngleSharp会为这些部件生成文本节点吗


请注意,获取父级的完整文本内容并不是我想要做的事情,因为我实际上仍然需要元素的结构来知道什么是什么。

这种行为实际上是DOM规范所期望的。您可能没有意识到这一点,但您已经回答了自己的问题:)

以下是您似乎不太正确的地方:元素!=节点。您要求元素,但您正在查找节点

类似
的标签:

foreach (var element in content.ChildNodes)
    Console.WriteLine(element.GetType().Name);
现在输出为:

TextNode
HTMLanchoreElement
TextNode
HtmlBoldElement
TextNode
HTMLBREAKROWELENT
文本节点


似乎将浮动文本放入元素将是一个简单的答案。这不可能吗?我正在解析不受我控制的HTML,所以这是不可能的:)
foreach (var element in content.Children)
    Console.WriteLine(element.GetType().Name);
foreach (var element in content.ChildNodes)
    Console.WriteLine(element.GetType().Name);