Set oXMLDoc = CreateObject("MSXML2.DOMDocument")
'oXMLDoc.preserveWhiteSpace = true
oXMLDoc.Async = False
blob = readFile(sFullPath)
'blob = UTF8ToUniStr(blob)
oXMLDoc.LoadXml blob
' mp create list of files that have change for the DB Make Live function
x = UpdateThisFile(sFullPath, RDBM_DB_FOLDER & "\edited\FilesToIndex.dat")
oXMLDoc.Save sTempFile 'Save temp file to 'edited' folder.
sModifiedBy = "CMS" 'TODO
'The XML document containing the definitions of the fields to be edited.
Set oXMLFieldDoc = CreateObject("MSXML2.DOMDocument")
oXMLFieldDoc.Async = False
oXMLFieldDoc.Load ADMIN_WWW_FOLDER & "\include\" & RDBM_FIELD_DEF_FILE
'Retrieve data for all fields.
For Each oFieldDef In oXMLFieldDoc.DocumentElement.SelectNodes("field")
sType = oFieldDef.SelectSingleNode("type").Text
sRefNo = oFieldDef.SelectSingleNode("name").Text
'Set parent node.
If InStr(sRefNo,"/") Then
sParent=Left(sRefNo,InStr(sRefNo,"/")-1)
Set oNode = oXMLDoc.DocumentElement.SelectSingleNode(sParent)
If oNode Is Nothing Then
'Parent node is not present - create.
Set oNode = oXMLDoc.CreateNode(1,sParent,"")
oXMLDoc.DocumentElement.AppendChild(oNode)
End If
sName = Mid(sRefNo,InStr(sRefNo,"/")+1)
Else
Set oNode = oXMLDoc.DocumentElement
sName = sRefNo
End If
'Set node.
Set oNodeList = oNode.SelectNodes(sName)
If Not oNodeList Is Nothing Then
'Delete existing text data.
For Each oTmp In oNodeList
oNode.RemoveChild oTmp
'For i = 0 To oTextNode.ChildNodes.Length - 1
' oTextNode.RemoveChild oTextNode.ChildNodes.Item(i)
'Next
Next
End If
If Request.Form("fv_" & sName) <> "" Then
Set oTextNode = oXMLDoc.CreateNode(1,sName,"")
oNode.AppendChild(oTextNode)
'Add the new data.
UpdateText oXMLDoc, oTextNode, sType, "fv_" & sName
End If
Next
'response.write sXMLFile
'response.end
'Update last modified information.
Set oTextNode = oXMLDoc.DocumentElement.SelectSingleNode("last_updated")
If oTextNode Is Nothing Then
Set oTextNode = oXMLDoc.CreateNode(1,"last_updated","")
oXMLDoc.DocumentElement.AppendChild(oTextNode)
End If
oTextNode.Text = Year(Now()) & PadZ(Month(Now()),2) & PadZ(Day(Now()),2) & "|" & PadZ(Hour(Now()),2) & ":" & PadZ(Minute(Now()),2) & ":" & PadZ(Second(Now()),2)
Set oTextNode = oXMLDoc.DocumentElement.SelectSingleNode("last_updated_by")
If oTextNode Is Nothing Then
Set oTextNode = oXMLDoc.CreateNode(1,"last_updated_by","")
oXMLDoc.DocumentElement.AppendChild(oTextNode)
End If
oTextNode.Text = sModifiedBy
'' Sort the XML. Beware, if you are relying on certain fields remaining as CDATA Elements then
'' You will need to specify Element names in the SortNode Function below..
'' SortNodeCDATAElements are set in admin_def
x = SortNode(oXMLDoc, "a", SortNodeCDATAElements)
oXMLDoc.Save sXMLFile
Set oXMLFieldDoc = CreateObject("MSXML2.DOMDocument")
oXMLFieldDoc.Async = False
oXMLFieldDoc.Load "test.xml"
'Retrieve data for all fields.
For Each oFieldDef In oXMLFieldDoc.DocumentElement.SelectNodes("field")
sType = oFieldDef.SelectSingleNode("type").Text
sRefNo = oFieldDef.SelectSingleNode("name").Text
'Set parent node.
If InStr(sRefNo,"/") Then
sParent=Left(sRefNo,InStr(sRefNo,"/")-1)
Set oNode = oXMLDoc.DocumentElement.SelectSingleNode(sParent)
If oNode Is Nothing Then
'Parent node is not present - create.
Set oNode = oXMLDoc.CreateNode(1,sParent,"")
oXMLDoc.DocumentElement.AppendChild(oNode)
End If
sName = Mid(sRefNo,InStr(sRefNo,"/")+1)
Else
Set oNode = oXMLDoc.DocumentElement
sName = sRefNo
End If
'Set node.
Set oNodeList = oNode.SelectNodes(sName)
If Not oNodeList Is Nothing Then
'Delete existing text data.
For Each oTmp In oNodeList
oNode.RemoveChild oTmp
'For i = 0 To oTextNode.ChildNodes.Length - 1
' oTextNode.RemoveChild oTextNode.ChildNodes.Item(i)
'Next
Next
End If
If Request.Form("fv_" & sName) <> "" Then
Set oTextNode = oXMLDoc.CreateNode(1,sName,"")
oNode.AppendChild(oTextNode)
'Add the new data.
UpdateText oXMLDoc, oTextNode, sType, "fv_" & sName
End If
Next
'response.write sXMLFile
'response.end
'Update last modified information.
Set oTextNode = oXMLDoc.DocumentElement.SelectSingleNode("last_updated")
If oTextNode Is Nothing Then
Set oTextNode = oXMLDoc.CreateNode(1,"last_updated","")
oXMLDoc.DocumentElement.AppendChild(oTextNode)
End If
oTextNode.Text = Year(Now()) & PadZ(Month(Now()),2) & PadZ(Day(Now()),2) & "|" & PadZ(Hour(Now()),2) & ":" & PadZ(Minute(Now()),2) & ":" & PadZ(Second(Now()),2)
Set oTextNode = oXMLDoc.DocumentElement.SelectSingleNode("last_updated_by")
If oTextNode Is Nothing Then
Set oTextNode = oXMLDoc.CreateNode(1,"last_updated_by","")
oXMLDoc.DocumentElement.AppendChild(oTextNode)
End If
oTextNode.Text = sModifiedBy
oXMLDoc.Save sXMLFile
' ******************************************************************************
Function SaveFields()
Dim sDisplayMode
Dim fso,oFiles,oFile,sFilename,sText
Dim sLangCode,sLanguageName,sTextTag,sISBNList,sTemplate,sSecondLevel
Dim sRefNo,sName,sFriendlyName,sType,sModifiedDate,sModifiedBy
Dim bVisible,bEditable
Dim oXMLFieldDefs,oNode,oNodeList,oTmp
'response.write oXMLFieldDefs.parseerror.reason
'Retrieve the XML document containing the actual data.
sFilename = sKey & ".xml"
if sFullPath = "" Then
' try the root data folder which is where new Records will be created
' This is in case the index is not up to date.
sFullPath = RDBM_DB_FOLDER & "\data\" & sFilename
End If
'/mp oXMLDoc
sXMLFile = sFullPath
Set oXMLDoc = createObject("MSXML2.DOMDocument")
oXMLDoc.async = false
oXMLDoc.Load sFullPath
If InfiniteUndo = True Then
FileUndo = sFilename & "_" & Year(Now()) & "-" & PadZ(Month(Now()),2) & "-" & PadZ(Day(Now()),2) & "-" & PadZ(Hour(Now()),2) & ".xml"
Else
FileUndo = sFilename
End If
sTempFile = RDBM_DB_FOLDER & "\edited\" & FileUndo
Set oXMLDoc = CreateObject("MSXML2.DOMDocument")
'oXMLDoc.preserveWhiteSpace = true
oXMLDoc.Async = False
blob = readFile(sFullPath)
'blob = UTF8ToUniStr(blob)
oXMLDoc.LoadXml blob
' mp create list of files that have change for the DB Make Live function
x = UpdateThisFile(sFullPath, RDBM_DB_FOLDER & "\edited\FilesToIndex.dat")
oXMLDoc.Save sTempFile 'Save temp file to 'edited' folder.
sModifiedBy = "AJAX"
'The XML document containing the definitions of the fields to be edited.
Set oXMLFieldDoc = CreateObject("MSXML2.DOMDocument")
oXMLFieldDoc.Async = False
oXMLFieldDoc.Load ADMIN_WWW_FOLDER & "\include\" & xmlfile2
For Each oFieldDef In oXMLFieldDoc.DocumentElement.SelectNodes("field")
sType = oFieldDef.SelectSingleNode("type").Text
sRefNo = oFieldDef.SelectSingleNode("name").Text
'Set parent node.
If InStr(sRefNo,"/") Then
sParent=Left(sRefNo,InStr(sRefNo,"/")-1)
Set oNode = oXMLDoc.DocumentElement.SelectSingleNode(sParent)
If oNode Is Nothing Then
'Parent node is not present - create.
Set oNode = oXMLDoc.CreateNode(1,sParent,"")
oXMLDoc.DocumentElement.AppendChild(oNode)
End If
sName = Mid(sRefNo,InStr(sRefNo,"/")+1)
Else
Set oNode = oXMLDoc.DocumentElement
sName = sRefNo
End If
'Set node.
Set oNodeList = oNode.SelectNodes(sName)
If Not oNodeList Is Nothing Then
'Delete existing text data.
For Each oTmp In oNodeList
oNode.RemoveChild oTmp
Next
End If
If sName <> "" Then
Set oTextNode = oXMLDoc.CreateNode(1,sName,"")
oNode.AppendChild(oTextNode)
'Add the new data.
oTextNode.Text = sName
End If
Next
'Update last modified information.
Set oTextNode = oXMLFieldDoc.DocumentElement.SelectSingleNode("eh_last_updated")
If oTextNode Is Nothing Then
Set oTextNode = oXMLDoc.CreateNode(1,"eh_last_updated","")
oXMLDoc.DocumentElement.AppendChild(oTextNode)
End If
oTextNode.Text = Year(Now()) & PadZ(Month(Now()),2) & PadZ(Day(Now()),2)
'Update last modified information.
Set oTextNode = oXMLDoc.DocumentElement.SelectSingleNode("last_updated")
If oTextNode Is Nothing Then
Set oTextNode = oXMLDoc.CreateNode(1,"last_updated","")
oXMLDoc.DocumentElement.AppendChild(oTextNode)
End If
oTextNode.Text = Year(Now()) & PadZ(Month(Now()),2) & PadZ(Day(Now()),2) & "|" & PadZ(Hour(Now()),2) & ":" & PadZ(Minute(Now()),2) & ":" & PadZ(Second(Now()),2)
Set oTextNode = oXMLDoc.DocumentElement.SelectSingleNode("last_updated_by")
If oTextNode Is Nothing Then
Set oTextNode = oXMLDoc.CreateNode(1,"last_updated_by","")
oXMLDoc.DocumentElement.AppendChild(oTextNode)
End If
oTextNode.Text = sModifiedBy
oXMLDoc.Save sXMLFile
Response.write WriteResponse(0)
'Update the index for that record.
If ReIndexRDBMOnUpdate = True Then
sFileList = CreateIndexFileList(sFullPath & vbNewLine)
'UpdatePartialIndex RDBM_INDEX_FOLDER, sFileList
UpdateIndex RDBM_INDEX_FOLDER
End If
' Also no sort..
End Function
Set featureNode = oXMLDoc.DocumentElement.selectSingleNode("//record/ehaus/eh_feature")
featureNode.text=sValue
Set oUpdateNode = oXMLDoc.DocumentElement.SelectSingleNode("//record/ehaus/eh_last_updated")
If oUpdateNode Is Nothing Then
Set oUpdateNode = oXMLDoc.CreateNode(1,"eh_last_updated","")
oXMLDoc.DocumentElement.AppendChild(oUpdateNode)
End If
oUpdateNode.Text = Year(Now()) & PadZ(Month(Now()),2) & PadZ(Day(Now()),2) & "|" & PadZ(Hour(Now()),2) & ":" & PadZ(Minute(Now()),2) & ":" & PadZ(Second(Now()),2)
<font face="Arial" size=2>
<p>msxml3.dll</font> <font face="Arial" size=2>error '80004005'</font>
<p>
<font face="Arial" size=2>This name may not contain the '/' character:
-->/<--/record/ehaus/eh_feature
</font>
<p>
<ehaus>
<eh_date_loaded>20080410</eh_date_loaded>
</ehaus>
<eh_feature>Y</eh_feature>
<eh_feature>N</eh_feature>
<eh_feature>Y</eh_feature>
<eh_feature>N</eh_feature>
<%
Dim record
Record = "record"
sKey = Request("k")
sDBM = Request.QueryString("dbm")
sField = Request("fields")
sValue = Request("values")
If Lcase(request("action")) = "save" Then
SaveFields()
End If
%>
<%
' **************************
Function SaveFields()
Dim sKey,sDisplayMode
Dim fso,oFiles,oFile,sFilename
Dim sLangCode,sLanguageName,sT
Dim sRefNo,sName,sFriendlyName
Dim bVisible,bEditable
Dim oXMLFieldDefs,oNode,oNodeL
'Get the key.
sFilename = sKey & ".xml"
sFullPath = FindFilePath(sKey, RDBM_INDEX_FOLDER)
if sFullPath = "" Then
' try the root data folder which is where new Records will be created
' This is in case the index is not up to date.
sFullPath = RDBM_DB_FOLDER & "\data\" & sFilename
End If
'/mp oXMLDoc
Set oXMLDoc = createObject("MSXML2.DOMDo
oXMLDoc.async = false
oXMLDoc.Load sFullPath
aFields = Split(sField, "|")
aValues = Split(sValue, "|")
' This won't handle pipe separated multi-instance fields..
' Also - doesn't save tmp copy to Edited folder..
For i = 0 To UBound(aFields)
Set oNode = oXMLDoc.DocumentElement.se
If Not oNode Is Nothing Then
oNode.text = aValues(i)
Else
Set oNode = oXMLDoc.createElement(aFie
oNode.text = aValues(i)
oXMLDoc.documentElement.ap
End if
Next
' Also no sort..
oXMLDoc.Save sFullPath
'Response.Write Replace(Replace(sField, "_", " "), "|", ", ") & " updated successfully."
'' Finally consider re-indexing as well..
Response.write WriteResponse(0)
End Function