Класс операций ASP XML, друзья, которые хотят изучить операции XML, могут обратиться к нему. Скопируйте код. Код выглядит следующим образом: Класс XMLClass.
Частный объект objXml
Частный xmlDoc
Частный xmlPath
'//============================================= = =============
'
Подкласс_инициализация
Установите objXml = Server.CreateObject(MSXML2.DOMDocument)
objXml.preserveWhiteSpace = true
objXml.async = ложь
Конец субтитра
Подкласс_Завершить
Установить objXml = Ничего
Конец субтитра
'//============================================= = =============
'
Открытая функция CreateNew(sName)
Установите tmpNode = objXml.createElement(sName)
objXml.appendChild(tmpNode)
Установите CreateNew = tmpNode
Конечная функция
'
Открытая функция OpenXml(sPath)
OpenXml=False
sPath=Server.MapPath(sPath)
'Response.Write(sPath)
xmlPath = sPath
Если objXml.load(sPath) Тогда
Установите xmlDoc = objXml.documentElement.
OpenXml=Истина
Конец, если
Конечная функция
'
Публичная подписка LoadXml(sStr)
objXml.loadXML(sStr)
Установите xmlDoc = objXml.documentElement.
Конец субтитра
Публичная подпрограмма InceptXml(xObj)
Установите objXml = xObj
Установите xmlDoc = xObj.documentElement.
Конец субтитра
'//============================================= = =============
'
Открытая функция AddNode(sNode,rNode)
' sNode STRING имя узла
'rNode OBJECT добавляет ссылку на вышестоящий узел узла.
'============================================== = ============
ДимТмпноде
Установите TmpNode = objXml.createElement(sNode)
rNode.appendChild TmpNode
Установите AddNode = TmpNode.
Конечная функция
'
Открытая функция AddAttribute(sName,sValue,oNode)
' sName Имя атрибута STRING
' Значение атрибута sValue STRING
' Объект oNode OBJECT с добавленными атрибутами
'============================================== = ============
oNode.setAttribute sName,sValue
Конечная функция
'
Открытая функция AddText(FStr,cdBool,oNode)
Тусклый tmpText
Если cdBool Тогда
Установите tmpText = objXml.createCDataSection(FStr)
Еще
Установите tmpText = objXml.createTextNode(FStr)
Конец, если
oNode.appendChild tmpText
Конечная функция
'============================================== = ============================================== = =====
'
Открытая функция GetAtt(aName,oNode)
' Имя атрибута aName STRING
' oNode Ссылка на узел ОБЪЕКТА
'============================================== = ============
дим tmpValue
tmpValue = oNode.getAttribute(aName)
GetAtt = tmpValue
Конечная функция
'
Открытая функция GetNodeName(oNode)
' oNode Ссылка на узел ОБЪЕКТА
GetNodeName = oNode.nodeName
Конечная функция
'
Открытая функция GetNodeText(oNode)
' oNode Ссылка на узел ОБЪЕКТА
GetNodeText = oNode.childNodes(0).nodeValue
Конечная функция
'
Открытая функция GetNodeType(oNode)
' oNode Ссылка на узел ОБЪЕКТА
GetNodeType = oNode.nodeValue
Конечная функция
'
Открытая функция FindNodes(sNode)
Затемнение tmpNodes
Установите tmpNodes = objXml.getElementsByTagName(sNode)
Установите FindNodes = tmpNodes
Конечная функция
'
Открытая функция FindNode(sNode)
ДимТмпноде
Установите TmpNode=objXml.selectSingleNode(sNode)
Установите FindNode = TmpNode.
Конечная функция
'
Открытая функция DelNode(sNode)
Тусклый TmpNodes,Nodesss
Установите TmpNodes=objXml.selectSingleNode(sNode)
Установите Nodesss=TmpNodes.parentNode
Nodesss.removeChild(TmpNodes)
Конечная функция
'
Открытая функция replaceNode(sNode,sText,cdBool)
'replaceChild
Уменьшить TmpNodes,tmpText
Установите TmpNodes=objXml.selectSingleNode(sNode)
'AddText sText,cdBool,TmpNodes
Если cdBool Тогда
Установите tmpText = objXml.createCDataSection(sText)
Еще
Установите tmpText = objXml.createTextNode(sText)
Конец, если
TmpNodes.replaceChild tmpText,TmpNodes.firstChild
Конечная функция
Инструкция обработки частной функции
'//--Создаем XML-объявление
Тусклый объект
Установите objPi = objXML.createProcessingInstruction(xml, version=&chr(34)&1.0&chr(34)&coding=&chr(34)&gb2312&chr(34))
'//--Добавляем жизнь xml к документу xml
objXML.insertBefore objPi, objXML.childNodes(0)
Конечная функция
'//============================================= = =============================
'
Открытая функция SaveXML()
'Инструкция Обработки()
objXml.save(xmlPath)
Конечная функция
'
Открытая функция SaveAsXML(sPath)
Инструкция Обработки()
objXml.save(sPath)
Конечная функция
'//============================================= = =================================
'Сопутствующая статистика
'
Свойство Получить root
Установить корень = xmlDoc
Конечная собственность
'
Свойство Получить длину
Длина = xmlDoc.childNodes.length
Конечная собственность
'//============================================= = =================================
'Связанные тесты
Свойство GetTestNode
TestNode = xmlDoc.childNodes(0).text
Конечная собственность
Конечный класс
Основные методы и реализация ASP, работающие с XML-файлами на стороне сервера через XMLDom.
Для небольших объемов данных файлы XML имеют много преимуществ перед ACCESS при поиске и обновлении.
Однажды я тестировал без использования базы данных и сохранил информацию об участниках веб-сайта, информацию о продуктах, информацию о транзакциях и информацию о настройке веб-сайта в трех XML-файлах. Результаты были очень нормальными. Казалось, что это было намного быстрее, чем с базой данных, но это не так. протестируйте это. Не уверен.
Давайте поговорим об основных методах создания, запроса, изменения и т. д. xml-операций.
'Создаем DOM-объект
установите objDom=server.CreateObject(MicroSoft.XMLDom)
'Получаем XML-данные
'Метод 1. Получение XML-данных XML-файла.
objDom.load(c:/test.xml)
'Метод 2: Получить данные строки данных XML
objDom.loadxml(<люди><имя человека=sd/></люди>)
'Создаем объект узла
Установите Newnode=objDom.CreateElement(люди)
'Присвойте этому узлу значение
Newnode.Text=Люди
'Добавляем атрибуты к этому узлу
Установить NewAttribute=objDom.CreateNode(атрибут,имя,)
NewAttribute.Text= Чжан Сан
Newnode.SetAttributeNode NewAttribute
'Добавить дочерние узлы к этому узлу
Установить NewnodeChild=objDom.CreateElement(адрес)
Newnode.appendChild NewnodeChild
'Сохраняем этот объект узла
objDom.appendChild Новый узел
objDom.save(c:/test.xml)
'Находим объект узла
set objtofind=objdom.documentElement.SelectSingleNode(//people/man)
'Получить имя узла, значение узла, определенное значение атрибута и весь XML-файл этого объекта узла
имя_узла=objtofind.имя_узла
nodevalue=objtofind.text
objtofind.GetAttributeNode(name).Nodevalue 'Значение атрибута с именем имени атрибута
'Получаем объект узла атрибута
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
для каждого элемента в objnodes
response.write element.nodename именование байтов
response.write element.text значение байтовой точки
следующий
Способ 2
domlength=objnodes.length
для i = 0 до domlength-1
response.write objnodes.childnodes(i).nodename именование байтов
response.write objnodes.childnodes(i).значение байтовой точки текста
следующий
'Получаем набор атрибутов узла
set objnodes=objdom.documentElement.SelectSingleNode(//people/man).GetAttributeNode(name).attributes
Перебрать эту коллекцию
для каждого элемента в objnodes
имя атрибута response.write element.nodename
Значение атрибута response.write element.nodevalue
следующий
Как только вы научитесь умело использовать объект xmldom для управления XML-файлами, вы сможете наслаждаться
Объект xmlhttp используется для реализации многих функций asp.
re:[Перенос]Основные методы и реализация ASP, работающие с XML-файлами на стороне сервера через XMLDom
Фейфей, почему бы тебе не ввести использование @? Без этого многие вещи будут неудобны.
XML, некоторые также называют его технологией сжатия данных, поскольку, как следует из названия, XML можно использовать в качестве базы данных.
Поэтому мы можем думать о xml как о небольшой базе данных. Почему его называют маленьким? Из-за функций и удобства применения самого XML все еще существуют определенные различия с базами данных. Так почему же мы используем XML? Потому что иногда некоторые наши приложения осуществляют доступ к данным, но если используется база данных, то отображение недостаточно гибкое и удобное. На данный момент нам следует использовать его в сочетании с xml.
Поскольку xml можно рассматривать как базу данных, первым шагом, конечно же, является создание объекта ссылки. (В качестве примера возьмите ASP+xml)
Метод создания такой же, как и для базы данных ссылок, для создания используйте server.createobject.
Вот как:
установить xmlDoc= Server.CreateObject(microsoft.xmldom)
xmlDoc.async=false
xmldata=абсолютный путь к источнику данных
xmlDoc.load xmldata 'Используйте метод загрузки для ссылки здесь
Поскольку формат данных xml относительно удобен для пользователя, формат данных может быть незаконным по человеческим или другим причинам. Если вы продолжите использовать его в это время, это приведет к завершению процесса программы. мы часто делаем это после создания объекта ссылки. Проверка формата данных.
Вот как:
если xmlDoc.parseError.errorCode<>0, то
….Обработка ошибок
<%
'----------
'Введение в программу: заполните язык asp, чтобы добавлять, удалять, изменять и просматривать текст указанного узла в XML-документе.
'Параметры ввода: Нет
'Параметры экспорта: нет
'--------
'Имя функции: ConnectXml()
'Параметры ввода: filename xml имя файла, который нужно подключить или открыть
'Параметры экспорта: нет
'Возвращаемое значение: ConnectXml=0, XMLMorntekDocument — это объект, который успешно загружает XML-документ.
'ConnectXml<>0, затем распечатайте сообщение об ошибке strError
'--------
тусклый XMLMorntekDocument
функция ConnectXml (имя файла)
дим стрсаурцефиле
strSourceFile = Server.MapPath(имя файла)
Установите XMLMorntekDocument = Server.CreateObject(Microsoft.XMLDOM)
XMLMorntekDocument.async = ложь
XMLMorntekDocument.load(strSourceFile)
ConnectXml=XMLMontekDocument.parseerror.errorcode
если XMLMorntekDocument.parseerror.errorcode<>0, то
strError=<h2>error&XMLMontekDocument.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&XMLMontekDocument.parseerror.srcText&<br>
ответ.запись стрError
конец, если
конечная функция
'--------
'Имя функции: CloseXml()
'Параметры ввода: Нет
'Параметры экспорта: нет
'--------
функция CloseXml(XMLMontekDocument)
если IsObject(XMLMorntekDocument), то
установить XMLMorntekDocument=ничего
конец, если
конечная функция
'--------
'Имя функции: SelectXmlNodeText(имя элемента)
'Вводной параметр: elementname Имя элемента
'Параметры экспорта: нет
'--------
функция SelectXmlNodeText(имя элемента)
имя элемента=//&имя элемента
temp=XMLMorntekDocument.selectSingleNode(имя элемента).текст
selectXmlNodeText = server.htmlencode(temp)
конечная функция
'--------
'Имя функции: InsertXmlNodeText(befelementname,elementname,elementtext)
'Параметр ввода: elementname Имя вставленного элемента
'befelementname вставляет элемент перед именем этого элемента
'elementtext Текст вставленного элемента
'Параметры экспорта: нет
'--------
функция InsertXmlNodeText(befelementname,elementname,elementtext)
дим бефелемент, стихия
set befelement=XMLMorntekDocument.selectSingleNode(//&befelementname)
set element = XMLMorntekDocument.createelement(имя элемента)
элемент befelement.insertBefore,befelement.firstchild
element.text=elementtext
конечная функция
'--------
'Имя функции: UpdateXmlNodeText(имя элемента,newelementtext)
'Вводной параметр: elementname Имя элемента
' Новый текст элемента newelementtext
'Параметры экспорта: нет
'--------
функция UpdateXmlNodeText (имя элемента, новый элемент текста)
тусклый элемент
set element=XMLMorntekDocument.selectSingleNode(//&имя элемента)
element.text=newelementtext
конечная функция
'--------
'Имя функции: DeleteXmlNodeText(имя элемента)
'Вводной параметр: elementname Имя элемента
'Параметры экспорта: нет
'--------
функция DeleteXmlNodeText(имя элемента)
XMLMorntekDocument.selectSingleNode(//&имя элемента).text =
конечная функция
%>
____________________
Эта статья не тестировалась, и ее осуществимость неизвестна.