Here's another useful bit of code used to generate formatted XML. This particular code - in C++ form - will eventually be incorporated into the Platypus API Service, when logging API calls is enabled.
Function PrettyPrintXML(strXML)
Dim objReader, objWriter
Set objReader = CreateObject("MSXML2.SAXXMLReader.6.0")
Set objWriter = CreateObject("MSXML2.MXXMLWriter.6.0")
objWriter.indent = True
objWriter.standalone = False
objWriter.omitXMLDeclaration = False
objWriter.encoding = "utf-8"
Set objReader.contentHandler = objWriter
Set objReader.dtdHandler = objWriter
Set objReader.errorHandler = objWriter
objReader.putProperty _
"http://xml.org/sax/properties/declaration-handler", _
objWriter
objReader.putProperty _
"http://xml.org/sax/properties/lexical-handler", _
objWriter
objReader.parse strXML
PrettyPrintXML = objWriter.output
End Function
The credit for this actually goes to Daniel Rikowski on StackOverflow. All I did was convert it into usable VBScript.
Random bits of information regarding the Platypus Billing System.
Not necessarily what you would call useful, but information none the less.
Showing posts with label VBScript. Show all posts
Showing posts with label VBScript. Show all posts
Friday, July 06, 2012
Sunday, May 06, 2012
Base64 Encoding using MSXML
At the time we were developing the base64 encoder - covered in my last post, there already existed a quick and dirty way to perform base64 encoding/decoding through MSXML. Even though we have decided not to pursue this for any Platypus development, it might benefit someone. Here are examples for using MSXML for base64 encoding/decoding from within VBScript.
Function Base64Encode (strData)
Set objDocument = CreateObject("MSXML2.DOMDocument")
Set objNode = objDocument.createElement("document")
objNode.dataType = "bin.base64"
objNode.nodeTypedValue = strData
Base64Encode = objNode.text
End Function
Function Base64Decode (strData)
Set objDocument = CreateObject("MSXML2.DOMDocument")
Set objNode = objDocument.createElement("document")
objNode.dataType = "bin.base64"
objNode.text = strData
Base64Decode = objNode.nodeTypedValue
End Function
This is covered in more detail in Microsoft's Knowledge Base Article named "How To Create XML Documents with Binary Data in Visual Basic", along with examples for hex encoding and date encoding (ISO-8601).
Labels:
Application Compatibility,
Decidering,
MSXML,
VBScript
Subscribe to:
Posts (Atom)