用tinyxml解析xml时,如何得到父节点的内容。 比如:<body><a>hello</a></body> 我想要得到body标签的值,
2个回答
展开全部
这个是我用DELPHI获取的 有些变量的多余的 这里只是整个过程的一部分 不过可以回答你的问题了
procedure TfrmTestChapter.Get_Source;
var
i: Integer;
TestSBC: TTestSBC;
lblname, pnlname, sSource, imgsrcListName: string;
imgBgName:string;
j:integer;
Str:string;
RootNode:IXMLNode;
begin
self.xmldcmnt1.Active:=False;
self.xmldcmnt1.XML.Text:='<?xml version="1.0" encoding="GB2312" ?>'+
'<fill version="1.0">'+
'<Source>'+
'<SrcID>9</SrcID>'+
'<Source>章节练习</Source>'+
'</Source>'+
'<Source>'+
'<SrcID>6</SrcID>'+
'<Source>高频考点</Source>'+
'</Source>'+
'<Source>'+
'<SrcID>12</SrcID>'+
'<Source>考前自测</Source>'+
'</Source>'+
'<Source>'+
'<SrcID>8</SrcID>'+
'<Source>易错与避错考题</Source>'+
'</Source>'+
'</fill>';
// self.xmldcmnt1.XML.Text:=RecXml;
self.xmldcmnt1.Active:=true;
RootNode:=self.xmldcmnt1.DocumentElement; //用TXMLDocument来解析
SetLength(FTestSource,RootNode.ChildNodes.Count);
for i := 0 to RootNode.ChildNodes.Count - 1 do //对模块进行分解
begin
for j := 0 to RootNode.ChildNodes[i].ChildNodes.Count- 1 do //取对应模块的数据;
begin
if j=0 then //这里是为了显示能够区分,在中间加了逗号”,“;
begin
Str:=VarToStr(RootNode.ChildNodes[i].ChildNodes[j].Text);
FTestSource[i].SrcID:=StrToInt(Str);
end else
begin
FTestSource[i].Source:=VarToStr(RootNode.ChildNodes[i].ChildNodes[j].Text);
end;
end;
end;
procedure TfrmTestChapter.Get_Source;
var
i: Integer;
TestSBC: TTestSBC;
lblname, pnlname, sSource, imgsrcListName: string;
imgBgName:string;
j:integer;
Str:string;
RootNode:IXMLNode;
begin
self.xmldcmnt1.Active:=False;
self.xmldcmnt1.XML.Text:='<?xml version="1.0" encoding="GB2312" ?>'+
'<fill version="1.0">'+
'<Source>'+
'<SrcID>9</SrcID>'+
'<Source>章节练习</Source>'+
'</Source>'+
'<Source>'+
'<SrcID>6</SrcID>'+
'<Source>高频考点</Source>'+
'</Source>'+
'<Source>'+
'<SrcID>12</SrcID>'+
'<Source>考前自测</Source>'+
'</Source>'+
'<Source>'+
'<SrcID>8</SrcID>'+
'<Source>易错与避错考题</Source>'+
'</Source>'+
'</fill>';
// self.xmldcmnt1.XML.Text:=RecXml;
self.xmldcmnt1.Active:=true;
RootNode:=self.xmldcmnt1.DocumentElement; //用TXMLDocument来解析
SetLength(FTestSource,RootNode.ChildNodes.Count);
for i := 0 to RootNode.ChildNodes.Count - 1 do //对模块进行分解
begin
for j := 0 to RootNode.ChildNodes[i].ChildNodes.Count- 1 do //取对应模块的数据;
begin
if j=0 then //这里是为了显示能够区分,在中间加了逗号”,“;
begin
Str:=VarToStr(RootNode.ChildNodes[i].ChildNodes[j].Text);
FTestSource[i].SrcID:=StrToInt(Str);
end else
begin
FTestSource[i].Source:=VarToStr(RootNode.ChildNodes[i].ChildNodes[j].Text);
end;
end;
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询