<?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[ 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文件如上。我想要提取 row 中的数据 (cdata 后面的数据)。之前有高人指点,我用如下方法:IXMLDOMElement *pRootElement=NULL;
IXMLDOMNode *pRootNode=NULL;
IXMLDOMNamedNodeMap *pAttrMap=NULL;
IXMLDOMNode *pAttrNode=NULL;
IXMLDOMNode *pAddrNode=NULL;
CString strName,strText;
BSTR bsName,bsText;
hr=pDoc->get_documentElement(&pRootElement);
if(SUCCEEDED(hr) && (pRootElement!=NULL))
{
hr=pRootElement->QueryInterface(IID_IXMLDOMNode,(void**)&pRootNode);
if(SUCCEEDED(hr))
{
hr=pRootNode->get_firstChild(&pAddrNode);
if(SUCCEEDED(hr) && (pAddrNode!=NULL))
{
pAddrNode->get_attributes(&pAttrMap);
long length=0;
pAttrMap->get_length(&length);
for(int i=0;i<length;i++)
{
hr=pAttrMap->get_item(i,&pAttrNode);
if(SUCCEEDED(hr) && (pAttrNode!=NULL))
{
pAttrNode->get_nodeName(&bsName);
pAttrNode->get_text(&bsText);
strName=bsName;
strText=bsText;
SysFreeString(bsName);
SysFreeString(bsText);
}
}
}
}
}我用这种方法,变量 strName 和 strText 能提取到 xmlns="http://www.semi.org" SubstrateId="695823901F1" SubstrateType="Wafer" FormatRevision="SEMI G85-0703" 中的东西。
请问,如何以上代码用同样的方法提取到row 中的数据 (cdata 后面的数据)。也就是00000000000000XGGGXXGGXX00000000000000 这些数据?
在线等,给代码的多加分。
- <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[ 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文件如上。我想要提取 row 中的数据 (cdata 后面的数据)。之前有高人指点,我用如下方法:IXMLDOMElement *pRootElement=NULL;
IXMLDOMNode *pRootNode=NULL;
IXMLDOMNamedNodeMap *pAttrMap=NULL;
IXMLDOMNode *pAttrNode=NULL;
IXMLDOMNode *pAddrNode=NULL;
CString strName,strText;
BSTR bsName,bsText;
hr=pDoc->get_documentElement(&pRootElement);
if(SUCCEEDED(hr) && (pRootElement!=NULL))
{
hr=pRootElement->QueryInterface(IID_IXMLDOMNode,(void**)&pRootNode);
if(SUCCEEDED(hr))
{
hr=pRootNode->get_firstChild(&pAddrNode);
if(SUCCEEDED(hr) && (pAddrNode!=NULL))
{
pAddrNode->get_attributes(&pAttrMap);
long length=0;
pAttrMap->get_length(&length);
for(int i=0;i<length;i++)
{
hr=pAttrMap->get_item(i,&pAttrNode);
if(SUCCEEDED(hr) && (pAttrNode!=NULL))
{
pAttrNode->get_nodeName(&bsName);
pAttrNode->get_text(&bsText);
strName=bsName;
strText=bsText;
SysFreeString(bsName);
SysFreeString(bsText);
}
}
}
}
}我用这种方法,变量 strName 和 strText 能提取到 xmlns="http://www.semi.org" SubstrateId="695823901F1" SubstrateType="Wafer" FormatRevision="SEMI G85-0703" 中的东西。
请问,如何以上代码用同样的方法提取到row 中的数据 (cdata 后面的数据)。也就是00000000000000XGGGXXGGXX00000000000000 这些数据?
在线等,给代码的多加分。
解决方案 »
- 求VC矢量图形软件开发方面资料,高手请进!
- WTL,创建窗口时,如何定制窗口背景色?
- 跪求vc做的串口通讯的毕业论文和例子
- 请问,如何HOOK某个程序窗口,使该窗口能够加上自己的菜单或工具按钮。
- 非常急!wincap在VC++中的应用!!
- 怎样在自己的进程里向操作系统(或别的进程)发送消息啊?
- 为什么写进去的信息不对
- 我想在vc++中调试vbscript脚本写的宏,就像vc++的调试那样
- COM本质论(essential com)一书的源码和相关工具在哪儿可以下载,拜托,我找了几天了!
- 如何在对话框中加入工具条和状态条?
- [原创]求你们告诉我,我该怎么学?
- 如何不用编译就知道对话框的像素大小?
if(SUCCEEDED(hr) && (pAddrNode!=NULL))
{
pAddrNode->get_attributes(&pAttrMap);
long length=0;
pAttrMap->get_length(&length);
for(int i=0;i<length;i++)
{
hr=pAttrMap->get_item(i,&pAttrNode);
if(SUCCEEDED(hr) && (pAttrNode!=NULL))
{
pAttrNode->get_nodeName(&bsName);
pAttrNode->get_text(&bsText);
strName=bsName;
strText=bsText;
SysFreeString(bsName);
SysFreeString(bsText);