Jump to content

XML/Output: Difference between revisions

1,711 bytes added ,  12 years ago
Line 71:
Pretty_Print => True);
end Character_Remarks;</lang>
 
=== Alternative version using Matreshka ===
 
Uses [http://forge.ada-ru.org/matreshka Matreshka SAX API for XML].
 
<lang Ada>with Ada.Wide_Wide_Text_IO;
 
with League.Strings;
with XML.SAX.Attributes;
with XML.SAX.Pretty_Writers;
 
procedure Main is
 
function "+"
(Item : Wide_Wide_String) return League.Strings.Universal_String
renames League.Strings.To_Universal_String;
 
type Remarks is record
Name : League.Strings.Universal_String;
Remark : League.Strings.Universal_String;
end record;
 
type Remarks_Array is array (Positive range <>) of Remarks;
 
------------
-- Output --
------------
 
procedure Output (Remarks : Remarks_Array) is
Writer : XML.SAX.Pretty_Writers.SAX_Pretty_Writer;
Attributes : XML.SAX.Attributes.SAX_Attributes;
begin
Writer.Set_Offset (2);
Writer.Start_Document;
Writer.Start_Element (Qualified_Name => +"CharacterRemarks");
 
for J in Remarks'Range loop
Attributes.Clear;
Attributes.Set_Value (+"name", Remarks (J).Name);
Writer.Start_Element
(Qualified_Name => +"Character", Attributes => Attributes);
Writer.Characters (Remarks (J).Remark);
Writer.End_Element (Qualified_Name => +"Character");
end loop;
Writer.End_Element (Qualified_Name => +"CharacterRemarks");
Writer.End_Document;
Ada.Wide_Wide_Text_IO.Put_Line (Writer.Text.To_Wide_Wide_String);
end Output;
 
begin
Output
(((+"April", +"Bubbly: I'm > Tam and <= Emily"),
(+"Tam O'Shanter", +"Burns: ""When chapman billies leave the street ..."""),
(+"Emily", +"Short & shrift")));
end Main;</lang>
 
=={{header|AutoHotkey}}==
Cookies help us deliver our services. By using our services, you agree to our use of cookies.