提问人:khantazm 提问时间:8/12/2023 更新时间:8/12/2023 访问量:27
为什么 HtmlAgilityPack 在某些 EPUB 文档中看不到正文
Why HtmlAgilityPack doesn't see the body in some EPUB documents
问:
我正在尝试使用 HtmlAgilityPack 解析 EPUB 文档(使用 VersOne.Epub 打开),它开始工作,但随着我测试的更多,它开始在一些书中缺少正文。
最初我测试了英语书籍,问题首先出现在俄语书籍中,我认为字母表或编码是问题所在,但事实似乎并非如此,因为我设法通过转到“/html/body”或只是“//body”来获得一本书的正文。但这在最新的版本中不起作用。例如,这个简短的部分:
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title/>
<link rel="stylesheet" href="style.css" type="text/css"/>
<link rel="stylesheet" href="style.css" type="text/css"/>
</head>
<body class="z">
<span id="id154"><div class="title3">
<p class="p">295</p>
</div><p class="p1">От слова bando - публичное оповещение - произошло слово bando-lero, означавшее разбойника, голова которого была оценена.</p></span>
</body>
</html>
Epub 库可以很好地获取字符串。html 标签已关闭,请检查。正文标签已关闭,请检查。给出了编码。HtmlAgilityPack 返回 null。可能是什么问题?
以防万一,这是我正在做的事情:
HtmlDocument htmlDocument = new();
htmlDocument.LoadHtml(textContentFile.Content);
var bodyNode = htmlDocument.DocumentNode.SelectSingleNode("//body");
textContentFile 来自 Epub 读取顺序。
答:
0赞
jdweng
8/12/2023
#1
请尝试以下操作:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
string xml = @"<?xml version=""1.0"" encoding=""UTF - 8""?>
<html xmlns = ""http://www.w3.org/1999/xhtml"" >
<head>
<title/>
<link rel = ""stylesheet"" href = ""style.css"" type = ""text/css"" />
<link rel = ""stylesheet"" href = ""style.css"" type = ""text/css"" />
</head >
<body class=""z"">
<span id = ""id154"" >
<div class=""title3"">
<p class=""p"">295</p>
</div>
<p class=""p1"">От слова bando - публичное оповещение - произошло слово bando-lero, означавшее разбойника, голова которого была оценена.</p></span>
</body>
</html>
";
XDocument doc = XDocument.Parse(xml);
XNamespace ns = doc.Root.GetDefaultNamespace();
XElement body = doc.Descendants(ns + "body").FirstOrDefault();
}
}
}
评论