DataFlex
DataFlex
Compress XML Content
See more XML Examples
Demonstrates how to compress the content of an XML node. Note: This does not compress the node's children, only the text content.The input XML, available at http://www.chilkatsoft.com/data/compress1.xml, is this:
<root>
<fox>This is content that will be compressed.
0The quick brown fox jumps over the lazy dog
1The quick brown fox jumps over the lazy dog
2The quick brown fox jumps over the lazy dog
3The quick brown fox jumps over the lazy dog
4The quick brown fox jumps over the lazy dog
5The quick brown fox jumps over the lazy dog
6The quick brown fox jumps over the lazy dog
7The quick brown fox jumps over the lazy dog
8The quick brown fox jumps over the lazy dog
9The quick brown fox jumps over the lazy dog
<child1>
<grandchild>This is not compressed.</grandchild>
</child1>
</fox>
</root>
Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoXml
String sTemp1
Move False To iSuccess
Get Create (RefClass(cComChilkatXml)) To hoXml
If (Not(IsComObjectCreated(hoXml))) Begin
Send CreateComObject of hoXml
End
// The sample input XML is available at http://www.chilkatsoft.com/data/compress1.xml
Get ComLoadXmlFile Of hoXml "compress1.xml" To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoXml To sTemp1
Showln sTemp1
Procedure_Return
End
// Navigate to the "fox" node, which is the 1st child:
Get ComFirstChild2 Of hoXml To iSuccess
// Zip compress the content:
Get ComZipContent Of hoXml To iSuccess
// Navigate back to the root:
Send ComGetRoot2 To hoXml
// Examine the new XML document:
Get ComGetXml Of hoXml To sTemp1
Showln sTemp1
// This is the XML w/ the compressed content in Base64 encoded format:
// <root>
// <fox><![CDATA[lcvbEYIwFIThZ5ixh63A8QZqHzTA5UiiIQeTIGr1xhJ2Zp/++bYxNiKvV5/EJyTTJqzWOXSS4zQH
// iVGG7aYsil1jBM/F9g90QVePm75xX6Y5Ql8S8lfg2u8Hg45/vyf9gfRH0p9IX5G+Jv2Z9BfSXwn/
// Aw==
// ]]>
// <child1>
// <grandchild>This is not compressed.</grandchild>
// </child1>
// </fox>
// </root>
// Now uncompress and show that the original content was restored:
Get ComFirstChild2 Of hoXml To iSuccess
Get ComUnzipContent Of hoXml To iSuccess
Send ComGetRoot2 To hoXml
Get ComGetXml Of hoXml To sTemp1
Showln sTemp1
End_Procedure