vc中如何解析xml文件

tht228 2010-02-22 09:07:09
<?xml version="1.0" encoding="utf-8" ?>
- <Maps>
- <Map xmlns="http://www.semi.org" SubstrateId="695823901F1" SubstrateType="Wafer" FormatRevision="SEMI G85-0703">
- <Device Rows="36" LotId="6958239.013" BinType="ASCII" Columns="38" MapType="Array" NullBin="0" ProductId="K25A" WaferSize="200" CreateDate="20091106130620353" DeviceSizeX="5082.95000" DeviceSizeY="5262.95000" Orientation="0" SupplierName="Micron Technology, Inc." OriginLocation="2" MicronLotId="6958239.013">
<ReferenceDevice ReferenceDeviceX="27" ReferenceDeviceY="35" />
<Bin BinCode="G" BinCount="906" BinQuality="Pass" />
<Bin BinCode="X" BinCount="170" BinQuality="Fail" />
- <Data>
- <Row>
- <![CDATA[ 00000000000000XXGXGGGGXX00000000000000
]]>
</Row>
- <Row>
- <![CDATA[ 00000000000XXXGGGGGGXGGGGXX00000000000
]]>
</Row>
- <Row>
- <![CDATA[ 000000000XXGGGGGXGGGGGGGGGGXX000000000
]]>
</Row>
- <Row>
- <![CDATA[ 00000000XXGGGGGGGGXGGGGGGXGGGX00000000
]]>
</Row>
- <Row>
- <![CDATA[ 0000000XXGGGGGGGGGGGGGGGGGGGGGX0000000
]]>
</Row>
- <Row>
- <![CDATA[ 00000XGXGXXGGGGGGGGGGGGGGGGGGGGXX00000
]]>
</Row>
- <Row>
- <![CDATA[ 00000GGGGXGGGGGXGGGGGGGGGGGGGGGGG00000
]]>
</Row>
- <Row>
- <![CDATA[ 0000XXGGXGGGGGGGGGGGGGGGGGGGGGGGGG0000
]]>
</Row>
- <Row>
- <![CDATA[ 0000XGGGGXGGGGGGXXGGGGGGGGXGGGGGGG0000
]]>
</Row>
- <Row>
- <![CDATA[ 00XGGGGGXGGGGGGGGGGGGGGGGXGGGGGGGGXX00
]]>
</Row>
- <Row>
- <![CDATA[ 00XGGGGGGGGGGGGGGGGGGGGGXGGGGGGGGXGG00
]]>
</Row>
- <Row>
- <![CDATA[ 0XGGGGGGGGGGGXGGGGGGGGGGGGGXGGGGGXGGX0
]]>
</Row>
- <Row>
- <![CDATA[ 0XGGGGGGGGGGGGGGGGXGGGGGGGGGGGGGGGGXX0
]]>
</Row>
- <Row>
- <![CDATA[ 0XGGGGGGGXGGGGGGGGGXXGGGGGGGGGGGGXGGG0
]]>
</Row>
- <Row>
- <![CDATA[ XGGGGXGGGGGGGXXGGGGGGGGGXGXGXGGGGGGGXX
]]>
</Row>
- <Row>
- <![CDATA[ XGGGGGGXGGXGGXGGGGGGGGGGGGGGGGGGGXGGXX
]]>
</Row>
- <Row>
- <![CDATA[ XGGGGGGGGGGGGGGGGXGGGGGGGGGGGGXGGGGGGX
]]>
</Row>
- <Row>
- <![CDATA[ XGGGGGGGGGGGGGGGGGXXGGGGGGGGGGGGGGGGGX
]]>
</Row>
- <Row>
- <![CDATA[ XGGGXGGGGGGGGGGGXGXGGGXGGGGGGGGGGXGGGX
]]>
</Row>
- <Row>
- <![CDATA[ XGGGGGGXGGGGGGGGGGGGGGGGGXGGGGGGGXGGXX
]]>
</Row>
- <Row>
- <![CDATA[ XGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGXX
]]>
</Row>
- <Row>
- <![CDATA[ XXGGGGGGGGGGGGGGGGGXGGGGGGGGGGGGGGGGXX
]]>
</Row>
- <Row>
- <![CDATA[ 0GGGGGGGXGGGXGGGXXGGGGXGGGGGGGGGGGGGG0
]]>
</Row>
- <Row>
- <![CDATA[ 0XGGGGGGGGGGGGGGGGGGGXGGGGGGGGGGGGGGX0
]]>
</Row>
- <Row>
- <![CDATA[ 0XGGGGGGGGGGGGGGGGGGGGGGGGGGGXGGGGGXX0
]]>
</Row>
- <Row>
- <![CDATA[ 00XGGGGGXGGGGGGGGGGGGGGGGGGGGGGGGGXX00
]]>
</Row>
- <Row>
- <![CDATA[ 00XXGGGGGGXGGGGGGGGXGGGGGGGGGGGGGGGX00
]]>
</Row>
- <Row>
- <![CDATA[ 0000XGGGGGXGGGGGXGGGGXGGGGGGXGGGXG0000
]]>
</Row>
- <Row>
- <![CDATA[ 0000XGGGGXGGGXXGGGGGGGGGGGGGGGGXGX0000
]]>
</Row>
- <Row>
- <![CDATA[ 0000XGXGGGGGGGGGXGGGGGGGGGGGGGGGXX0000
]]>
</Row>
- <Row>
- <![CDATA[ 00000XXGGGGGGGGGGGGGGGGGGGGXXGGGX00000
]]>
</Row>
- <Row>
- <![CDATA[ 000000XXGGGGGGGGXGXGGGGGGGGGGGXX000000
]]>
</Row>
- <Row>
- <![CDATA[ 00000000GGGGGGXGGGGGGGGGGGGGGG00000000
]]>
</Row>
- <Row>
- <![CDATA[ 000000000XGGGGGGGGGGGGGXGXGGX000000000
]]>
</Row>
- <Row>
- <![CDATA[ 00000000000XGGGGXGXGGGGGGGX00000000000
]]>
</Row>
- <Row>
- <![CDATA[ 00000000000000XGGGXXGGXX00000000000000
]]>
</Row>
</Data>
</Device>
</Map>
</Maps>

类似于这样的xml文件,如何逐个解析其中的字符啊?
给源代码的多加分。在线等。
...全文
570 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
tht821 2010-02-23
  • 打赏
  • 举报
回复
CoInitialize(NULL); // 初始化COM。
CComPtr<IXMLDOMDocument> spXMLDOM;
HRESULT hr=spXMLDOM.CoCreateInstance (_uuidof(DOMDocument));
// 创建解析器实例。
VARIANT_BOOL bSuccess=false;
hr=spXMLDOM->raw_load(CComVariant("xmlfile.xml"),&bSuccess);// 装载XML文档。
CComBSTR bstrSS("Device");
CComPtr<IXMLDOMNode> spDevice;
hr=spXMLDOM->raw_selectSingleNode(bstrSS,&spDevice); //搜索"Device"。
CComQIPtr<IXMLDOMElement> spDev;
spDev=spDevice;
hr= spDev ->raw_setAttribute(CComBSTR("name"),CComVariant("改的这里"));// 设置"Device"的"name"属性。
CComPtr<IXMLDOMNode> spModelNode;
hr=spXMLDOM->raw_createNode(CComVariant(NODE_ELEMENT),CComBSTR("Model"),NULL,& spModelNode); // 创建"Model"节点。
CComPtr<IXMLDOMNode> spInsertedNode;
hr=spDevice->raw_appendChild (spModelNode,&spInsertedNode); // 添加新节点到"Device"节点下面。
CString strID="123";
hr=spInsertedNode->put_text(strID.AllocSysString());// 设置"Model"的文本。
hr=spXMLDOM->save(CComVariant("xmlfile.xml")); //保存文档。
CoUninitialize(); // 结束对COM的使用。
xueer8835 2010-02-23
  • 打赏
  • 举报
回复
CMarkup http://www.firstobject.com/dn_markupmethods.htm
shenzhentom 2010-02-22
  • 打赏
  • 举报
回复
网上有现成的类,可解析XML.
tzxx 2010-02-22
  • 打赏
  • 举报
回复
CMarkUp 也可以
tankdin 2010-02-22
  • 打赏
  • 举报
回复
msxml或者网上有tinyxml
jingzhongrong 2010-02-22
  • 打赏
  • 举报
回复
MSXML
Torch009 2010-02-22
  • 打赏
  • 举报
回复
有专门的类库,网上可以找到
西山小月 2010-02-22
  • 打赏
  • 举报
回复
用MSXML,或者到网上找第三方的库

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧