【问题标题】:Getting a Parse Error with a Wordpress feed使用 Wordpress 提要获取解析错误
【发布时间】:2019-09-18 19:34:55
【问题描述】:

我在使用 XMLDocument 组件解析 WordPress 提要时遇到问题。阅读提要时,我在第 52 行收到解析错误。我看到单词中的单引号不会更改为 Wasnx92t。但这应该不会导致问题,因为它正在被转换。

可在此处找到 XML 提要:https://minttoreport.com/feed/

procedure TMainForm.RefreshNews(Sender: TObject);
var
  s: string;
  sl: TStringList;
  StartItemNode : IXMLNode;
  ANode : IXMLNode;
  STitle, sDesc, sLink : WideString;
begin
  sl := TStringList.Create;
  sl.text := OnlineRegForm.GetUrlContent('https://minttoreport.com/feed/');
  sl.SaveToFile(ReportFolder+'news.xml');
  XMLDocument1.FileName := ReportFolder+'news.xml';
  XMLDocument1.Active := true;
  StartItemNode := XMLDocument1.DocumentElement.ChildNodes.First.ChildNodes.FindNode('item') ;
  ANode := StartItemNode;
  STitle := ANode.ChildNodes['title'].Text;
  sLink := ANode.ChildNodes['link'].Text;
  sDesc := ANode.ChildNodes['description'].Text;
  WebBrowser2.LoadFromStrings('<h4><a href="'+sLink+'" '+ sTitle+'"</a></h4>"','');
  Showmessage('<h4><a href="'+sLink+'" '+ sTitle+'"</a></h4>"');

这是一个 WordPress,最新版本,来自 https://minttoreport.com/feed

当我激活 XMLDocument 组件时出现错误。

【问题讨论】:

  • 我对文件使用了xmlvalidation.com,它说没有错误。现在如何让 XMLDocument 组件接受它。

标签: parsing xmldocument delphi-10.3-rio


【解决方案1】:

我不确定这是否是 Delphi 10.3 错误,但我只是通过设置 文件内容的 XML 属性而不是使用 FileName 属性。 IDE 中的结果相同。所以这里是修改后的代码:

procedure TMainForm.RefreshNews(Sender: TObject);
var
  s: string;
  sl: TStringList;
  StartItemNode : IXMLNode;
  ANode : IXMLNode;
  STitle, sDesc, sLink : WideString;
begin
  sl := TStringList.Create;
  sl.text := OnlineRegForm.GetUrlContent('https://minttoreport.com/feed/');
  //sl.SaveToFile(ReportFolder+'news.xml');
  //XMLDocument1.FileName := ReportFolder+'news.xml';
  XMLDocument1.XML.Text := sl.Text;
  XMLDocument1.Active := true;
  StartItemNode := XMLDocument1.DocumentElement.ChildNodes.First.ChildNodes.FindNode('item') ;
  ANode := StartItemNode;
//  repeat
    STitle := ANode.ChildNodes['title'].Text;
    sLink := ANode.ChildNodes['link'].Text;
    sDesc := ANode.ChildNodes['description'].Text;
    WebBrowser2.LoadFromStrings('<h4><a href="'+sLink+'" '+ sTitle+'"</a></h4>"','');
    Showmessage('<h4><a href="'+sLink+'" '+ sTitle+'"</a></h4>"');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-21
    相关资源
    最近更新 更多