提问人:AEP 提问时间:4/20/2023 更新时间:4/21/2023 访问量:129
XML 中的错误:不允许空 XML 命名空间
Error in XML : Empty XML namespace is not allowed
问:
我正在尝试使用matlab阅读网页(即字典网页),并使用extractHTMLText将html数据转换为文本以获取一些信息,但MATLAB给出了以下错误: “XML 中的错误:不允许空 XML 命名空间。 由于我不是专业的程序员,所以对命名空间及其错误并不熟悉。 法典:
url='https://www.vocabulary.com/dictionary/river';
options = weboptions('Timeout', 10);
code = webread(url,options);
textData = extractHTMLText(code);
完全错误(测试是我的脚本名称):
Error using htmlTree (line 67)
Error in XML: xmlns:fb: Empty XML namespace is not allowed
Error in extractHTMLText (line 40)
tree = htmlTree(code);
Error in test (line 12)
textData = extractHTMLText(code)
正如你所看到的,MATLAB只在读取网页的文本分析部分存在问题(空命名空间错误)。
谁能帮我修复这个错误?谢谢。
注意:我检查了“code”变量,看看webread功能是否正常工作,然后在命令窗口中打印了这个变量。该变量包含HTML代码,这意味着HTML代码中可能没有问题。
答:
0赞
Michael Kay
4/21/2023
#1
如果你用 curl 查看网页的内容,你会看到它开始:
<!DOCTYPE html>
<html lang="en-US" xmlns:vcom xmlns:fb>
<head>
这不是格式正确的 XML - 属性必须具有名称和值 - 因此,如果您尝试使用 XML 解析器解析它,则会出现错误。
评论
0赞
AEP
4/21/2023
感谢您的指导。我删除了您提到的行并重新分析了文本,程序成功运行。我只有一个问题,因为我不是专业程序员,也不熟悉HTML的结构,那么MATLAB中是否有函数可以自动检测并删除使HTML代码的某些部分无法分析的情况?如果没有,你能为我提供一个功能吗?(当然,删除这些项目很容易,重要的是要认识到我无法识别无效项目)。
0赞
Michael Kay
4/21/2023
对不起,我不懂MATLAB。
评论