MFC读取xml中的数据到一个数组解决思路
MFC读取xml中的数据到一个数组
我有一个xml文件
<SampleResults XMLVersion="7.2" XMLCreationDateTime="2015-03-17T14:26:46">
<SampleResult Name="A356-4" OperatorName="" Type="TypeStandardization" CorrType="None" Origin="Measured" BackupStatus="Original" RecalculationDateTime="2015-03-17T14:26:04" MethodName="A356" Instrument="LMX06" ReproTestType="None" ReproTestResult="NotUsed" AreReproTestOutliersIgnored="No">
<SampleIDs/>
<MeasurementReplicates Count="3">
<MeasurementReplicate No="0" IsDeleted="No" IsOutlier="No" MeasureDateTime="2015-03-17T14:24:16">
<Measurement CheckType="None" RsdCheck="No">
<Lines>
<Line LineName="Si3 288.158(1)" Type="Analyte" CalibrationValueType="RelInt" ReferenceLineName="Al3 265.248(1)" ConcentrationPrecisionStdDev="0">
<LineResult Type="RawInt" Kind="Intensity" Unit="CPS" DisplayUnit="CPS" StatType="None" IsDeleted="No" Status="OK" ExtStatus="None" CalibrationStatus="NotUsed" AcceptanceStatus="NotUsed" WarningStatus="NotUsed">
<ResultValue>43467222.319163665</ResultValue>
<ResultValueLimits/>
</LineResult>
<LineResult Type="RelInt" Kind="Intensity" Unit="CPS" DisplayUnit="CPS" StatType="None" IsDeleted="No" Status="OK" ExtStatus="None" CalibrationStatus="NotUsed" AcceptanceStatus="NotUsed" WarningStatus="NotUsed">
<ResultValue>30511593.096593089</ResultValue>
<ResultValueLimits/>
</LineResult>
<LineResult Type="StdzInt" Kind="Intensity" Unit="CPS" DisplayUnit="CPS" StatType="None" IsDeleted="No" Status="OK" ExtStatus="None" CalibrationStatus="NotUsed" AcceptanceStatus="NotUsed" WarningStatus="NotUsed">
<ResultValue>30984597.871497765</ResultValue>
<ResultValueLimits/>
</LineResult>
<LineResult Type="ConcRatio" Kind="Concentration" Unit="%" DisplayUnit="%" StatType="None" IsDeleted="No" Status="OK" ExtStatus="None" CalibrationStatus="NotUsed" AcceptanceStatus="NotUsed" WarningStatus="NotUsed">
<ResultValue>7.5624580288146852</ResultValue>
<ResultValueLimits/>
</LineResult>。。。。。
想进行解析,读取resultvalue的值 求代码,本人是新手,谢谢
------解决思路----------------------
下载一个tinyXML,或者使用MS的XML解释器
------解决思路----------------------
------解决思路----------------------
CMarkupXML读取xml文件,使用比较简单,codeproject上搜索CMarkup XML
我有一个xml文件
<SampleResults XMLVersion="7.2" XMLCreationDateTime="2015-03-17T14:26:46">
<SampleResult Name="A356-4" OperatorName="" Type="TypeStandardization" CorrType="None" Origin="Measured" BackupStatus="Original" RecalculationDateTime="2015-03-17T14:26:04" MethodName="A356" Instrument="LMX06" ReproTestType="None" ReproTestResult="NotUsed" AreReproTestOutliersIgnored="No">
<SampleIDs/>
<MeasurementReplicates Count="3">
<MeasurementReplicate No="0" IsDeleted="No" IsOutlier="No" MeasureDateTime="2015-03-17T14:24:16">
<Measurement CheckType="None" RsdCheck="No">
<Lines>
<Line LineName="Si3 288.158(1)" Type="Analyte" CalibrationValueType="RelInt" ReferenceLineName="Al3 265.248(1)" ConcentrationPrecisionStdDev="0">
<LineResult Type="RawInt" Kind="Intensity" Unit="CPS" DisplayUnit="CPS" StatType="None" IsDeleted="No" Status="OK" ExtStatus="None" CalibrationStatus="NotUsed" AcceptanceStatus="NotUsed" WarningStatus="NotUsed">
<ResultValue>43467222.319163665</ResultValue>
<ResultValueLimits/>
</LineResult>
<LineResult Type="RelInt" Kind="Intensity" Unit="CPS" DisplayUnit="CPS" StatType="None" IsDeleted="No" Status="OK" ExtStatus="None" CalibrationStatus="NotUsed" AcceptanceStatus="NotUsed" WarningStatus="NotUsed">
<ResultValue>30511593.096593089</ResultValue>
<ResultValueLimits/>
</LineResult>
<LineResult Type="StdzInt" Kind="Intensity" Unit="CPS" DisplayUnit="CPS" StatType="None" IsDeleted="No" Status="OK" ExtStatus="None" CalibrationStatus="NotUsed" AcceptanceStatus="NotUsed" WarningStatus="NotUsed">
<ResultValue>30984597.871497765</ResultValue>
<ResultValueLimits/>
</LineResult>
<LineResult Type="ConcRatio" Kind="Concentration" Unit="%" DisplayUnit="%" StatType="None" IsDeleted="No" Status="OK" ExtStatus="None" CalibrationStatus="NotUsed" AcceptanceStatus="NotUsed" WarningStatus="NotUsed">
<ResultValue>7.5624580288146852</ResultValue>
<ResultValueLimits/>
</LineResult>。。。。。
想进行解析,读取resultvalue的值 求代码,本人是新手,谢谢
------解决思路----------------------
下载一个tinyXML,或者使用MS的XML解释器
------解决思路----------------------
#import <msxml3.dll>
..................................................................
::CoInitialize(NULL);
BSTR strNodeValue;
MSXML2::IXMLDOMDocumentPtr spDoc;
HRESULT hr = spDoc.CreateInstance(__uuidof(MSXML2::DOMDocument)); //创建文档对象
hr = spDoc->load(strIniFileName.AllocSysString());//load xml文件
MSXML2::IXMLDOMNodeListPtr spNodeList;
MSXML2::IXMLDOMNodePtr pItem;
spNodeList=spDoc->getElementsByTagName(_bstr_t("h")); //获取根结点
long nListNo=0;
spNodeList->get_length(&nListNo);
if (nListNo<=0)
{
m_strServerId.Empty();
spNodeList.Release();
spDoc.Release();
::CoUninitialize();
return FALSE;
}
spNodeList->get_item(0,&pItem);
pItem->get_text(&strNodeValue);
m_strServerId=(CString)strNodeValue;
pItem.Release();
spNodeList.Release();
spDoc.Release();
::CoUninitialize();
------解决思路----------------------
CMarkupXML读取xml文件,使用比较简单,codeproject上搜索CMarkup XML