xml と組み合わせる必要があるコードを容易にするための xmldom オペレーション コード <script language=vbscript runat=server>
'================================================ = ===========
著者:自分らしくありなさい
'時間: 2005-3-15
================================================= ==========
クラスXMLClass
プライベートobjXml
プライベートxmlDoc
プライベートxmlパス
'//============================================== = =============
'<!--クラスの初期化およびログアウト中のイベント-->
サブクラス_初期化
objXml = Server.CreateObject(MSXML2.DOMDocument) を設定します。
objXml.preserveWhiteSpace = true
objXml.async = false
エンドサブ
サブクラス_終了
objXml = なしを設定します
エンドサブ
'//============================================== = =============
'<!--新しい XML ドキュメントを作成します-->
パブリック関数 CreateNew(sName)
tmpNode = objXml.createElement(sName) を設定します。
objXml.appendChild(tmpNode)
CreateNew = tmpNode を設定します
終了機能
'<!--XML ドキュメントを外部から読み取る -->
パブリック関数 OpenXml(sPath)
OpenXml=False
sPath=サーバー.マップパス(sPath)
'Response.Write(sPath)
xmlPath = sPath
objXml.load(sPath) の場合
xmlDoc = objXml.documentElement を設定します
OpenXml=True
終了の場合
終了機能
'<!--XML 文字列を外部から読み取る -->
パブリックサブLoadXml(sStr)
objXml.loadXML(sStr)
xmlDoc = objXml.documentElement を設定します
エンドサブ
パブリックサブInceptXml(xObj)
objXml = xObj を設定します
xmlDoc = xObj.documentElement を設定します
エンドサブ
'//============================================== = =============
'<!--新しいノードを追加します-->
パブリック関数 AddNode(sNode,rNode)
' sNode STRING ノード名
'rNode OBJECT はノードの上位ノード参照を追加します
'================================================ = ============
DimTmpNode
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 OBJECT ノード参照
'================================================ = ============
dim tmpValue
tmpValue = oNode.getAttribute(aName)
GetAtt = tmpValue
終了機能
'<!--ノード名を取得します-->
パブリック関数 GetNodeName(oNode)
' oNode OBJECT ノード参照
GetNodeName = oNode.nodeName
終了機能
'<!--ノードのコンテンツを取得-->
パブリック関数 GetNodeText(oNode)
' oNode OBJECT ノード参照
GetNodeText = oNode.childNodes(0).nodeValue
終了機能
'<!--ノード タイプの取得-->
パブリック関数 GetNodeType(oNode)
' oNode OBJECT ノード参照
GetNodeType = oNode.nodeValue
終了機能
'<!--同じノード名を持つすべてのノードを検索します-->
パブリック関数 FindNodes(sNode)
ディム tmpNodes
tmpNodes = objXml.getElementsByTagName(sNode) を設定します。
FindNodes = tmpNodes を設定します。
終了機能
'<!-- 同一のノードを確認します -->
パブリック関数 FindNode(sNode)
DimTmpNode
TmpNode=objXml.selectSingleNode(sNode) を設定します。
FindNode = TmpNode を設定します
終了機能
'<!--ノードを削除します-->
パブリック関数 DelNode(sNode)
Dim TmpNodes、Nodesss
TmpNodes=objXml.selectSingleNode(sNode) を設定します。
Nodesss=TmpNodes.parentNode を設定します
Nodesss.removeChild(TmpNodes)
終了機能
'<!--ノードを交換します-->
パブリック関数 ReplaceNode(sNode,sText,cdBool)
'子を置き換える
Dim 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
Set objPi = objXML.createProcessingstruct(xml, version=&chr(34)&1.0&chr(34)&encoding=&chr(34)&gb2312&chr(34))
'//-- XML ドキュメントに XML ライフを追加します
objXML.insertobjPi の前、objXML.childNodes(0)
終了機能
'//============================================== = ==============================
'<!--XML ドキュメントを保存-->
パブリック関数 SaveXML()
'処理命令()
objXml.save(xmlPath)
終了機能
'<!--XML ドキュメントを保存-->
パブリック関数 SaveAsXML(sPath)
処理命令()
objXml.save(sPath)
終了機能
'//============================================== = ==================================
'関連統計
'<!--ルート ノードを取得します-->
プロパティのルートの取得
ルート = xmlDoc を設定します
終了プロパティ
'<!--ルート ノードの下の子ノードの数を取得します-->
プロパティの長さの取得
長さ = xmlDoc.childNodes.length
終了プロパティ
'//============================================== = ==================================
'関連するテスト
プロパティ
TestNode = xmlDoc.childNodes(0).text
終了プロパティ
終了クラス
</script>