Anonymous user
XML/Output: Difference between revisions
no edit summary
(→{{header|Go}}: update for new template library, also added an error check) |
No edit summary |
||
Line 849:
This produces:
<lang xml><?xml version="1.0" encoding="UTF-8"?><CharacterRemarks><Character name="April">Bubbly: I'm > Tam and <= Emily</Character><Character name="Tam O'Shanter">Burns: "When chapman billies leave the street ..."</Character><Character name="Emily">Short & shrift</Character></CharacterRemarks></lang>
=={{header|NetRexx}}==
===Using DOM===
{{trans|Java}}
<lang NetRexx>/* NetRexx */
options replace format comments java crossref savelog symbols nobinary
import java.io.StringWriter
import javax.xml.parsers.DocumentBuilderFactory
import javax.xml.transform.Result
import javax.xml.transform.Source
import javax.xml.transform.Transformer
import javax.xml.transform.TransformerFactory
import javax.xml.transform.dom.DOMSource
import javax.xml.transform.stream.StreamResult
import org.w3c.dom.Document
import org.w3c.dom.Element
names = [String -
"April", "Tam O'Shanter", "Emily" -
]
remarks = [ String -
"Bubbly: I'm > Tam and <= Emily" -
, 'Burns: "When chapman billies leave the street ..."' -
, 'Short & shrift' -
]
do
-- Create a new XML document
doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument()
-- Append the root element
root = doc.createElement("CharacterRemarks")
doc.appendChild(root)
-- Read input data and create a new <Character> element for each name.
loop i_ = 0 to names.length - 1
character = doc.createElement("Character")
root.appendChild(character)
character.setAttribute("name", names[i_])
character.appendChild(doc.createTextNode(remarks[i_]))
end i_
-- Serializing XML in Java is unnecessary complicated
-- Create a Source from the document.
source = DOMSource(doc)
-- This StringWriter acts as a buffer
buffer = StringWriter()
-- Create a Result as a transformer target.
result = StreamResult(buffer)
-- The Transformer is used to copy the Source to the Result object.
transformer = TransformerFactory.newInstance().newTransformer()
transformer.setOutputProperty("indent", "yes")
transformer.transform(source, result)
-- Now the buffer is filled with the serialized XML and we can print it to the console.
say buffer.toString
catch ex = Exception
ex.printStackTrace
end
return
</lang>
;Output
<lang xml><?xml version="1.0" encoding="UTF-8" standalone="no"?>
<CharacterRemarks>
<Character name="April">Bubbly: I'm > Tam and <= Emily</Character>
<Character name="Tam O'Shanter">Burns: "When chapman billies leave the street ..."</Character>
<Character name="Emily">Short & shrift</Character>
</CharacterRemarks>
</lang>
===Using the Streaming API for XML (StAX)===
<lang NetRexx>/* NetRexx */
options replace format comments java crossref savelog symbols nobinary
import java.io.StringWriter
import javax.xml.stream.XMLOutputFactory
import javax.xml.stream.XMLStreamWriter
names = [String -
"April", "Tam O'Shanter", "Emily" -
]
remarks = [ String -
"Bubbly: I'm > Tam and <= Emily" -
, 'Burns: "When chapman billies leave the street ..."' -
, 'Short & shrift' -
]
do
buffer = StringWriter()
out = XMLOutputFactory.newInstance().createXMLStreamWriter(buffer)
out.writeStartDocument("UTF-8", "1.0")
out.writeStartElement("CharacterRemarks")
loop i_ = 0 to names.length = 1
out.writeStartElement("Character")
out.writeAttribute("name", names[i_])
out.writeCharacters(remarks[i_])
out.writeEndElement()
end i_
out.writeEndElement()
out.writeEndDocument()
say buffer
catch ex = Exception
ex.printStackTrace
end
return
</lang>
;Output
<lang xml><?xml version="1.0" encoding="UTF-8"?><CharacterRemarks><Character name="April">Bubbly: I'm > Tam and <= Emily</Character></CharacterRemarks>
</lang>
=={{header|Objeck}}==
|