RosettaCodeData/Task/XML-Output/PureBasic/xml-output.basic

60 lines
1.2 KiB
Plaintext

DataSection
dataItemCount:
Data.i 3
names:
Data.s "April", "Tam O'Shanter", "Emily"
remarks:
Data.s "Bubbly: I'm > Tam and <= Emily",
~"Burns: \"When chapman billies leave the street ...\"",
"Short & shrift"
EndDataSection
Structure characteristic
name.s
remark.s
EndStructure
NewList didel.characteristic()
Define item.s, numberOfItems, i
Restore dataItemCount
Read.i numberOfItems
;add names
Restore names
For i = 1 To numberOfItems
AddElement(didel())
Read.s item
didel()\name = item
Next
;add remarks
ResetList(didel())
FirstElement(didel())
Restore remarks:
For i = 1 To numberOfItems
Read.s item
didel()\remark = item
NextElement(didel())
Next
Define xml, mainNode, itemNode
ResetList(didel())
FirstElement(didel())
xml = CreateXML(#PB_Any)
mainNode = CreateXMLNode(RootXMLNode(xml), "CharacterRemarks")
ForEach didel()
itemNode = CreateXMLNode(mainNode, "Character")
SetXMLAttribute(itemNode, "name", didel()\name)
SetXMLNodeText(itemNode, didel()\remark)
Next
FormatXML(xml, #PB_XML_ReFormat | #PB_XML_WindowsNewline | #PB_XML_ReIndent)
If OpenConsole()
PrintN(ComposeXML(xml, #PB_XML_NoDeclaration))
Print(#CRLF$ + #CRLF$ + "Press ENTER to exit"): Input()
CloseConsole()
EndIf