如何使用已知的函数操作xml文件?

php_wsd 2007-12-09 09:10:05
今天在网上搜索asp操作xml文件,搜索了一些自定义函数
<%
'----------------------------------------------------------------
'程序简介: 完成asp语言对XML文档中指定节点文本的增加、删除、修改、查看
'入口参数: 无
'出口参数: 无
'------------------------------------------------
'函数名字:ConnectXml()
'入口参数: filename 需要连接或打开的xml文件名
'出口参数: 无
'返回值 :ConnectXml=0,XMLMorntekDocument就是一个成功装载XML文档的对象了。
' ConnectXml<>0,则打印错误信息strError
'------------------------------------------------
dim XMLMorntekDocument

function ConnectXml(filename)
dim strSourceFile
strSourceFile = Server.MapPath(filename)
Set XMLMorntekDocument = Server.CreateObject("Microsoft.XMLDOM")
XMLMorntekDocument.async = false
XMLMorntekDocument.load(strSourceFile)
ConnectXml=XMLMorntekDocument.parseerror.errorcode
if XMLMorntekDocument.parseerror.errorcode<>0 then
strError="<h2>error"&XMLMorntekDocument.parseerror.errorcode&"</h2>"
strError=strError&XMLMorntekDocument.parseerror.reason&"<br>"
strError=strError&XMLMorntekDocument.parseerror.url&"<br>"
strError=strError&XMLMorntekDocument.parseerror.line&"<br>"
strError=strError&XMLMorntekDocument.parseerror.filepos&"<br>"
strError=strError&XMLMorntekDocument.parseerror.srcText&"<br>"
response.write strError
end if
end function

'------------------------------------------------
'函数名字:CloseXml()
'入口参数: 无
'出口参数: 无
'------------------------------------------------
function CloseXml(XMLMorntekDocument)
if IsObject(XMLMorntekDocument) then
set XMLMorntekDocument=nothing
end if
end function


'------------------------------------------------
'函数名字:SelectXmlNodeText(elementname)
'入口参数: elementname 元素的名字
'出口参数: 无
'------------------------------------------------
function SelectXmlNodeText(elementname)
elementname="//"&elementname
temp=XMLMorntekDocument.selectSingleNode(elementname).text
selectXmlNodeText= server.htmlencode(temp)

end function

'------------------------------------------------
'函数名字:InsertXmlNodeText(befelementname,elementname,elementtext)
'入口参数: elementname 插入的元素的名字
' befelementname在此元素的名字前面插入元素
' elementtext 插入的元素的文本
'出口参数: 无
'------------------------------------------------
function InsertXmlNodeText(befelementname,elementname,elementtext)
dim befelement,element
set befelement=XMLMorntekDocument.selectSingleNode("//"&befelementname)
set element= XMLMorntekDocument.createelement(elementname)
befelement.insertBefore element,befelement.firstchild
element.text=elementtext
end function

'------------------------------------------------
'函数名字:UpdateXmlNodeText(elementname,newelementtext)
'入口参数: elementname 元素的名字
' newelementtext元素的新文本
'出口参数: 无
'------------------------------------------------
function UpdateXmlNodeText(elementname,newelementtext)
dim element
set element=XMLMorntekDocument.selectSingleNode("//"&elementname)
element.text=newelementtext
end function

'------------------------------------------------
'函数名字:DeleteXmlNodeText(elementname)
'入口参数: elementname 元素的名字
'出口参数: 无
'------------------------------------------------
function DeleteXmlNodeText(elementname)
XMLMorntekDocument.selectSingleNode("//"&elementname).text =""
end function
%>

假设的我xml是example.xml
<?xml version="1.0" encoding="utf-8"?>
<channel>
<item>
<title>新浪</title>
<link>http://www.sina.com.cn</link>
</item>
</channel>

如何使用上面的函数来添加,删除,修改节点?
...全文
83 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
php_wsd 2007-12-09
  • 打赏
  • 举报
回复
哦,谢谢
xiaolei1982 2007-12-09
  • 打赏
  • 举报
回复
以上自定义函数没有定义加同级节点,
要加需要自己写函数,利用appendChild就可实现
php_wsd 2007-12-09
  • 打赏
  • 举报
回复
如果我想插入一个item项,也就是
<?xml version="1.0" encoding="utf-8"?>
<channel>
<item>
<title>新浪</title>
<link>http://www.sina.com.cn</link>
</item>
</channel>
我想得到以下
<?xml version="1.0" encoding="utf-8"?>
<channel>
<item>
<title>新浪</title>
<link>http://www.sina.com.cn</link>
</item>
<item>
<title>百度</title>
<link>http://www.baidu.com</link>
</item>
</channel>
tantaiyizu 2007-12-09
  • 打赏
  • 举报
回复

顶楼上 mark!
xiaolei1982 2007-12-09
  • 打赏
  • 举报
回复
上面的函数不是写的很清楚吗?例如插入:
function InsertXmlNodeText(befelementname,elementname,elementtext)
dim befelement,element
set befelement=XMLMorntekDocument.selectSingleNode("//"&befelementname)
set element= XMLMorntekDocument.createelement(elementname)
befelement.insertBefore element,befelement.firstchild
element.text=elementtext
end function

InsertXmlNodeText("link",“linkup”,"楼主")
效果就应该是
<?xml version="1.0" encoding="utf-8"?>
<channel>
<item>
<title> 新浪 </title>
<linkup>楼主</linkup>
<link> http://www.sina.com.cn </link>
</item>
</channel>
楼主可以这样反复尝试其他的函数用法


28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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