asp+xml 问题
别人从软件上传一个XML格式的数据,格式为:Data="数据内容";
"数据内容"是一个字符串,它是由XML结构,包含了用户的基本信息和使用数据.前部分是用户信息,<data>与</data>之间为使用数据,使用数据是一个二维表,包含有SetPoint,Violation,Average,PowerOn,PainLevel五个字段,数据行由<RowData>与</RowData>分开.
具体信息:参数: 'Data = ' +strTemp
strTemp定义如下:
strTemp:='<FirstName>'+UserInfo.Name+'</FirstName>';
strTemp:=strTemp+'<LastName>'+UserInfo.LastName+'</LastName>';
strTemp:=strTemp+'<Address>'+UserInfo.Address+'</Address>';
strTemp:=strTemp+'<City>'+UserInfo.City+'</City>';
strTemp:=strTemp+'<State>'+UserInfo.State+'</State>';
strTemp:=strTemp+'<ZipCode>'+UserInfo.ZipCode+'</ZipCode>';
strTemp:=strTemp+'<Country>'+UserInfo.Country+'</Country>';
strTemp:=strTemp+'<PhoneNo>'+UserInfo.PhoneNo+'</PhoneNo>';
strTemp:=strTemp+'<Email>'+UserInfo.Email+'</Email>';
strTemp:=strTemp+'<SerialNo>'+UserInfo.SerialNo+'</SerialNo>';
strTemp:=strTemp+'<Data>';
for i:=0 to lstData.Count-1 do
begin
strTemp:=strTemp+'<RowData>';
pRec:=PBackAidRec(lstData.Items[i]);
strTemp:=strTemp+'<SetPoint>'+IntToStr(pRec.nSetPoint)+'</SetPoint>';
strTemp:=strTemp+'<Violation>'+IntToStr(pRec.nViolation)+'</Violation>';
strTemp:=strTemp+'<Average>'+IntToStr(pRec.Average)+'</Average>';
strTemp:=strTemp+'<PowerOn>'+IntToStr(pRec.PowerOn)+'</PowerOn>';
strTemp:=strTemp+'<PainLevel>'+IntToStr(pRec.nPainLevel)+'</PainLevel>';
strTemp:=strTemp+'</RowData>';
end;
strTemp:=strTemp+'</Data>';
我在ASP中应该怎么处理。把每个字段的数据单独提取出来写如库中~~
答案:用字符串函数截取<FirstName>和</FirstName>内的内容,保存到FirstName中,其他同理
或者使用XMLDOM:
下面说一下创建,查询,修改等对xml操作的主要方法
'创建DOM对象
set objDom=server.CreateObject("MicroSoft.XMLDom")
'取得xml数据
'方法1 取得xml文件的xml数据
objDom.load("c:\test.xml")
'方法2 取得xml数据串的数据
objDom.loadxml("<people><man name="sd"/></people>")
'创建一个节点对象
Set Newnode=objDom.CreateElement("people")
'给这个节点赴值
Newnode.Text="人"
' 给这个节点添加属性
Set NewAttribute=objDom.CreateNode("attribute","name","")
NewAttribute.Text= "张三"
Newnode.SetAttributeNode NewAttribute
'给这个节点添加子节点
Set NewnodeChild=objDom.CreateElement("address")
Newnode.appendChild NewnodeChild
'保存这个节点对象
objDom.appendChild Newnode
objDom.save("c:\test.xml")
'查找一个节点对象
set objtofind=objdom.documentElement.SelectSingleNode("//people/man")
'取出这个节点对象的 节点名,节点值,某个属性值,和全部的xml
nodename=objtofind.nodename
nodevalue="/objtofind.text
objtofind.GetAttributeNode("name").Nodevalue" '属性名为name的属性值
'取出一个属性节点对象
set objattrtofind=objdom.documentElement.SelectSingleNode("//people/man"). GetAttributeNode("name")
'取出这个节点的属性名,属性值
nodeattrname=objattrtofind.nodename
nodeattrvalue="/objattrtofind.nodevalue
'删除一个节点对象
set objnode=objdom.documentElement.SelectSingleNode("//people/man") '要删除的节点
set objparentnode=objdom.documentElement.SelectSingleNode("//people") '要删除的节点的父节点
objparentnode.removeChild objnode
'取出一个节点的字节点集合
set objnodes=objdom.documentElement.SelectSingleNode("//people/man").ChildNodes
遍历这个集合
方法1
for each element in objnodes
response.write element.nodename 字节点名
response.write element.text 字节点值
next
方法2
domlength=objnodes.length
for i = 0 to domlength-1
response.write objnodes.childnodes(i).nodename 字节点名
response.write objnodes.childnodes(i).text 字节点值
next
'取出一个节点的属性集合
set objnodes=objdom.documentElement.SelectSingleNode("//people/man").GetAttributeNode("name").attributes
遍历这个集合
for each element in objnodes
response.write element.nodename 属性名
response.write element.nodevalue 属性值
next
等能够熟练的运用xmldom对象来操作xml文件了,就可以享
受xmlhttp对象来实现asp下的许多功能了。
掌握一些编程语言可让您在职场竞争中收放自如,而扎实的技巧将会让您炙手可热。但是,语言种类繁多。很多开发人员掌握多种语言,懂得在合适的地方合适的时间使用正确的语言。为你更喜欢哪门网页编程语言? http://www.gdglc.com/bbs/dispbbs.asp?boardID=2&ID=11101&page=1
上一个:asp 二级联动搜索
下一个:asp如何调用Ajax