69 lines
1.7 KiB
Plaintext
69 lines
1.7 KiB
Plaintext
/* NetRexx */
|
|
options replace format comments java crossref symbols nobinary
|
|
|
|
import java.io.StringWriter
|
|
import javax.xml.
|
|
import org.w3c.dom.
|
|
|
|
class RDOMSerialization public
|
|
|
|
properties private
|
|
domDoc = Document
|
|
|
|
method main(args = String[]) public static
|
|
|
|
lcl = RDOMSerialization()
|
|
lcl.buildDOMDocument()
|
|
lcl.serializeXML()
|
|
|
|
return
|
|
|
|
method buildDOMDocument() inheritable
|
|
|
|
do
|
|
factory = DocumentBuilderFactory.newInstance()
|
|
builder = factory.newDocumentBuilder()
|
|
impl = builder.getDOMImplementation()
|
|
domDoc = impl.createDocument(null, null, null)
|
|
elmt1 = domDoc.createElement("root")
|
|
elmt2 = domDoc.createElement("element")
|
|
elmt2.setTextContent("Some text here")
|
|
|
|
domDoc.appendChild(elmt1)
|
|
elmt1.appendChild(elmt2)
|
|
|
|
catch exPC = ParserConfigurationException
|
|
exPC.printStackTrace
|
|
end
|
|
|
|
return
|
|
|
|
method serializeXML() inheritable
|
|
|
|
do
|
|
domSrc = DOMSource(domDoc)
|
|
txformer = TransformerFactory.newInstance().newTransformer()
|
|
txformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no")
|
|
txformer.setOutputProperty(OutputKeys.METHOD, "xml")
|
|
txformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8")
|
|
txformer.setOutputProperty(OutputKeys.INDENT, "yes")
|
|
txformer.setOutputProperty(OutputKeys.STANDALONE, "yes")
|
|
txformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2")
|
|
|
|
sw = StringWriter()
|
|
sr = StreamResult(sw)
|
|
|
|
txformer.transform(domSrc, sr)
|
|
|
|
say sw.toString
|
|
|
|
catch exTC = TransformerConfigurationException
|
|
exTC.printStackTrace
|
|
catch exTF = TransformerFactoryConfigurationError
|
|
exTF.printStackTrace
|
|
catch exTE = TransformerException
|
|
exTE.printStackTrace
|
|
end
|
|
|
|
return
|