XML/Output: Difference between revisions

Added Kotlin
(Added Kotlin)
Line 1,204:
</lang>
 
=={{header|Kotlin}}==
<lang scala>// version 1.1.3
 
import javax.xml.parsers.DocumentBuilderFactory
import javax.xml.transform.dom.DOMSource
import java.io.StringWriter
import javax.xml.transform.stream.StreamResult
import javax.xml.transform.TransformerFactory
 
fun main(args: Array<String>) {
val names = listOf("April", "Tam O'Shanter", "Emily")
 
val remarks = listOf(
"Bubbly: I'm > Tam and <= Emily",
"Burns: \"When chapman billies leave the street ...\"",
"Short & shrift"
)
 
val dbFactory = DocumentBuilderFactory.newInstance()
val dBuilder = dbFactory.newDocumentBuilder()
val doc = dBuilder.newDocument()
val root = doc.createElement("CharacterRemarks") // create root node
doc.appendChild(root)
 
// now create Character elements
for (i in 0 until names.size) {
val character = doc.createElement("Character")
character.setAttribute("name", names[i])
val remark = doc.createTextNode(remarks[i])
character.appendChild(remark)
root.appendChild(character)
}
 
val source = DOMSource(doc)
val sw = StringWriter()
val result = StreamResult(sw)
val tFactory = TransformerFactory.newInstance()
tFactory.newTransformer().apply {
setOutputProperty("omit-xml-declaration", "yes")
setOutputProperty("indent", "yes")
setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4")
transform(source, result)
}
println(sw)
}
</lang>
 
{{out}}
<pre>
<CharacterRemarks>
<Character name="April">Bubbly: I'm &gt; Tam and &lt;= Emily</Character>
<Character name="Tam O'Shanter">Burns: "When chapman billies leave the street ..."</Character>
<Character name="Emily">Short &amp; shrift</Character>
</CharacterRemarks>
</pre>
 
=={{header|Lasso}}==
9,476

edits