Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.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
使用HTML敏捷性剥离HTML标记但保留内部文本?_Html_Html Agility Pack - Fatal编程技术网

使用HTML敏捷性剥离HTML标记但保留内部文本?

使用HTML敏捷性剥离HTML标记但保留内部文本?,html,html-agility-pack,Html,Html Agility Pack,我试图去掉一些HTML标签。我有一个项目,其中的人保存了一些搜索。问题是关键词被突出显示了。比如说 <p>Here is some <span class='highlite'>awesome</span> example.</p> 但结果是,文本节点,文本节点,文本节点。我想要一个文本节点。然后我试着用 Node.InnerText += someVariable; 但是InnerText,不管文档上说什么,都是只读的 有什么办法吗 第二,当

我试图去掉一些HTML标签。我有一个项目,其中的人保存了一些搜索。问题是关键词被突出显示了。比如说

<p>Here is some <span class='highlite'>awesome</span> example.</p>
但结果是,文本节点,文本节点,文本节点。我想要一个文本节点。然后我试着用

Node.InnerText += someVariable;
但是InnerText,不管文档上说什么,都是只读的

有什么办法吗

第二,当我询问时,是否有一种方法可以去除只包含文本的节点,并且它是\r\n。我对这一点都不感兴趣,它只是妨碍了我,让解析变得很尴尬。我希望能够删除这些太。比如说

<tr>
    <td>Foo</td>
    <td>Bar</td>
</tr>
我正在努力选择那些节点。我试过使用Linq,也试过使用XPath。我似乎无法删除它们。

如果只获取p标记的内部文本,并创建一个单独的文档树来保存它会怎么样

var root = HtmlNode.CreateNode("<root></root>");
foreach (var node in doc.DocumentNode.SelectNodes("/p"))
{
    var newNode = HtmlNode.CreateNode(string.Format("<p>{0}</p>", node.InnerText));
    root.AppendChild(newNode);
}
这有用吗

如果只获取p标记的InnerText,并创建一个单独的文档树来保存它会怎么样

var root = HtmlNode.CreateNode("<root></root>");
foreach (var node in doc.DocumentNode.SelectNodes("/p"))
{
    var newNode = HtmlNode.CreateNode(string.Format("<p>{0}</p>", node.InnerText));
    root.AppendChild(newNode);
}
这有用吗

Node (tr)
Node (\r\n)
Node (td- Foo)
Node (\r\n)
Node (td - Bar)
Node (\r\n)
Node (tr)
var root = HtmlNode.CreateNode("<root></root>");
foreach (var node in doc.DocumentNode.SelectNodes("/p"))
{
    var newNode = HtmlNode.CreateNode(string.Format("<p>{0}</p>", node.InnerText));
    root.AppendChild(newNode);
}