读书人

有关XML格式文体的读取解决办法

发布时间: 2012-02-04 15:43:08 作者: rapoo

有关XML格式文体的读取
计划用CFILE类读取XML格式文本
格式如:
<FLIE>
<xml name= "情况1 " value= "值1 ">
<xml1 name= "A " value= "A "> </xml1>
<xml1 name= "B " value= "B "> </xml1>
...
...
<xml1 name= "N " value= "N "> </xml1>
</xml1>
<xml name= "情况2 " value= "值2 ">
<xml1 name= "AA " value= "AA "> </xml1>
<xml1 name= "BB " value= "BB "> </xml1>
...
...
<xmln name= "NN " value= "NN "> </xml1>
</xml>
</FILE>


想用CFILE类读取上述格式文本数据,
如读取:
当 <xml> 的value= "值2 "时,读取 <xml1> name= "BB "的value的值?

怎么操作?

大家知道下干怎么做,
最好上CODE

[解决办法]
用MSXML组件

[解决办法]
读:
Private Function CreatTables(ByVal strKeyName As String, ByVal strWhich As String) As Boolean
Dim sql As String
Dim s As String
'创建XML文档实例
Dim XMLWebSetting As System.Xml.XmlDocument = New System.Xml.XmlDocument
'打开XML文档
XMLWebSetting.Load(System.Web.HttpContext.Current.Server.MapPath( "~/ " + strWhich + " "))

'查找节点所在位置
Dim XmlNodeList As System.Xml.XmlNodeList = XMLWebSetting.SelectSingleNode( "//appSettings ").ChildNodes
Dim xn As System.Xml.XmlNode
Dim xe As System.Xml.XmlElement

For Each xn In XmlNodeList
Try
sql = xn.Attributes( "value ").InnerText
EXESQL(sql)
Catch
End Try
Next
Return True
End Function

写:
Private Sub SaveSetting(ByVal strKeyName As String, ByVal strKeyValue As String, ByVal strWhich As String)

'创建XML文档实例
Dim XMLWebSetting As System.Xml.XmlDocument = New System.Xml.XmlDocument
'打开XML文档
XMLWebSetting.Load(System.Web.HttpContext.Current.Server.MapPath( "~/ " + strWhich + " "))

'查找节点所在位置
Dim XmlNodeList As System.Xml.XmlNodeList = XMLWebSetting.SelectSingleNode( "//appSettings ").ChildNodes
Dim xn As System.Xml.XmlNode
Dim xe As System.Xml.XmlElement
Try
For Each xn In XmlNodeList
xe = CType(xn, System.Xml.XmlElement)
If xe.Attributes( "key ").InnerText = strKeyName Then
xe.Attributes( "value ").InnerText = strKeyValue
XMLWebSetting.Save(System.Web.HttpContext.Current.Server.MapPath( "~/ " + strWhich + " "))
Exit For
End If
Next
Catch
End Try
End Sub



过程使用:SaveSetting( "ConStr ", Trim(TextBox1.Text), "web.config ")

[解决办法]
用MSXML组件, you may read the file carefully:
http://dev.yesky.com/413/2510413.shtml


and then you know how to read xml.
[解决办法]
学习一下……
[解决办法]
mark
[解决办法]
<?xml version= "1.0 " encoding= "GB2312 "?>
  <Device id= "10041 " name= "设备1 ">
  <Type>13</Type>
  <TypeName>保护</TypeName>
  </Device>
/********************************************/
CoInitialize(NULL); // 初始化COM。
  CComPtr<IXMLDOMDocument> spXMLDOM;
  HRESULT hr=spXMLDOM.CoCreateInstance (_uuidof(DOMDocument));
  // 创建解析器实例。
  VARIANT_BOOL bSuccess=false;
  hr=spXMLDOM->load(CComVariant(L "xmlfile.xml "),&bSuccess);
  // 装载XML文档。
  CComBSTR bstrSS(L "Device ");
  CComPtr<IXMLDOMNode> spDevice;
  hr=spXMLDOM->selectSingleNode(bstrSS,&spDevice); //搜索 "Device "。
  CComQIPtr<IXMLDOMElement> spDev;
  spDev=spDevice;
  // 设置 "Device "的 "name "属性。
  hr= spDev ->setAttribute(CComBSTR(L "name "),CComVariant( "测试设备 "));
  CComPtr<IXMLDOMNode> spModelNode; hr=spXMLDOM->createNode(CComVariant(NODE_ELEMENT),ComBSTR
  ( "Model "),NULL,& spModelNode); // 创建 "Model "节点。
  CComPtr<IXMLDOMNode> spInsertedNode;
  hr=spDevice->appendChild (spModelNode,&spInsertedNode);
  // 添加新节点到 "Device "节点下面。
  CString strID= "3 ";
  hr=spInsertedNode->put_text(strID.AllocSysString());// 设置 "Model "的文本。
  hr=spXMLDOM->save(CComVariant( "xmlfile.xml ")); / /保存文档。
  CoUninitialize(); // 结束对COM的使用。

读书人网 >VC

热点推荐