我在解析xml文档时遇到了问题。实际上我正在使用XMl绑定向导来提取属性值,但每次抛出异常时都会。
这是我的xml:
<?xml version="1.0" encoding="UTF-8"?>
<conversioncloud version="1.2">
<status step="finished"/>
<id>
<![CDATA[T9Nr96Hy]]>
</id>
<videoid>
<![CDATA[92590917]]>
</videoid>
<server>
<![CDATA[server12]]>
</server>
<file>
<![CDATA[my file ofr xmfhf.ext]]>
</file>
<service>
<![CDATA[myservice]]>
</service>
<mediaurl>
<![CDATA[web address here]]>
</mediaurl>
<downloadurl>
<![CDATA[download url here]]>
</downloadurl>
<downloadserver>
<![CDATA[srv55]]>
</downloadserver>
<downloadhash>
<![CDATA[upyxqnJmsKuwbGttn5OcaXCs26SqaG60l5acbmpmm2pka7WEz9bXnaeE14ujqK2tyMg%3D]]>
</downloadhash>
<filesize>
<![CDATA[2.77 MB]]>
</filesize>
<debuginfo>
<![CDATA[T9Nr96Hy|92590917|srv55|1396163808|ListenToYoutube]]>
</debuginfo>
</conversioncloud>
我的代码:
procedure TForm1.Button10Click(Sender: TObject);
var
Cloud : IXMLConversioncloudType;
size : Integer;
begin
XMLDocument1.XML.Text := Memo1.Text;
Cloud := Getconversioncloud(XMLDocument1);
// trying to display "file" field from xml document above
ShowMessage(Cloud.File_);
end;
每当我收到错误时:预计会打开'['字符行:23
任何代码片段或合适的链接都将受到赞赏。
编辑: 谢谢,但是我在Delphi中的有限知识无法捕获发布的指令。顺便说一句,这个xml绑定似乎在C ++ Builder 6中有效。使用xml绑定,我能够提取所需的字段,如downloadurl,mediaurl,file来自同一个xml的等等。 这是C ++ Builder 6中的代码。
void __fastcall YoutubeMax::ShowFileInfo(String aResponse)
{
frmMain->XMLDocument1->XML->Text = aResponse;
_di_IXMLconversioncloudType cloud = Getconversioncloud(frmMain->XMLDocument1);
// find index of files
int url = cloud->ChildNodes->IndexOf("downloadurl");
int title = cloud->ChildNodes->IndexOf("file");
int size = cloud->ChildNodes->IndexOf("filesize");
// Fill the details
frmMain->lblYoutubeFilename->Caption = "Title : " + cloud->ChildNodes->Nodes[title]->ChildNodes->Nodes[0]->Text;
frmMain->lblYoutubeFileSize->Caption = "File Size : " + cloud->ChildNodes->Nodes[size]->ChildNodes->Nodes[0]->Text;
frmMain->memoYoutubeMp3Link->Text = cloud->ChildNodes->Nodes[url]->ChildNodes->Nodes[0]->Text;
我不知道为什么同样的逻辑在delphi xe4中不起作用。顺便说一下,xml是有效的,因为它在Internet explporer和Chrome中正常打开。如果你有任何其他方法来解析这个xml,那么请回复。