Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,23 +0,0 @@
|
|||
with Sax.Readers;
|
||||
with Input_Sources.Strings;
|
||||
with Unicode.CES.Utf8;
|
||||
with My_Reader;
|
||||
|
||||
procedure Extract_Students is
|
||||
Sample_String : String :=
|
||||
"<Students>" &
|
||||
"<Student Name=""April"" Gender=""F"" DateOfBirth=""1989-01-02"" />" &
|
||||
"<Student Name=""Bob"" Gender=""M"" DateOfBirth=""1990-03-04"" />" &
|
||||
"<Student Name=""Chad"" Gender=""M"" DateOfBirth=""1991-05-06"" />" &
|
||||
"<Student Name=""Dave"" Gender=""M"" DateOfBirth=""1992-07-08"">" &
|
||||
"<Pet Type=""dog"" Name=""Rover"" />" &
|
||||
"</Student>" &
|
||||
"<Student DateOfBirth=""1993-09-10"" Gender=""F"" Name=""Émily"" />" &
|
||||
"</Students>";
|
||||
Reader : My_Reader.Reader;
|
||||
Input : Input_Sources.Strings.String_Input;
|
||||
begin
|
||||
Input_Sources.Strings.Open (Sample_String, Unicode.CES.Utf8.Utf8_Encoding, Input);
|
||||
My_Reader.Parse (Reader, Input);
|
||||
Input_Sources.Strings.Close (Input);
|
||||
end Extract_Students;
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
with Sax.Attributes;
|
||||
with Sax.Readers;
|
||||
with Unicode.CES;
|
||||
package My_Reader is
|
||||
type Reader is new Sax.Readers.Reader with null record;
|
||||
procedure Start_Element
|
||||
(Handler : in out Reader;
|
||||
Namespace_URI : Unicode.CES.Byte_Sequence := "";
|
||||
Local_Name : Unicode.CES.Byte_Sequence := "";
|
||||
Qname : Unicode.CES.Byte_Sequence := "";
|
||||
Atts : Sax.Attributes.Attributes'Class);
|
||||
end My_Reader;
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
with Ada.Text_IO;
|
||||
package body My_Reader is
|
||||
procedure Start_Element
|
||||
(Handler : in out Reader;
|
||||
Namespace_URI : Unicode.CES.Byte_Sequence := "";
|
||||
Local_Name : Unicode.CES.Byte_Sequence := "";
|
||||
Qname : Unicode.CES.Byte_Sequence := "";
|
||||
Atts : Sax.Attributes.Attributes'Class) is
|
||||
begin
|
||||
if Local_Name = "Student" then
|
||||
Ada.Text_IO.Put_Line (Sax.Attributes.Get_Value (Atts, "Name"));
|
||||
end if;
|
||||
end Start_Element;
|
||||
end My_Reader;
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
with Ada.Text_IO;
|
||||
with Sax.Readers;
|
||||
with Input_Sources.Strings;
|
||||
with Unicode.CES.Utf8;
|
||||
with DOM.Readers;
|
||||
with DOM.Core.Documents;
|
||||
with DOM.Core.Nodes;
|
||||
with DOM.Core.Attrs;
|
||||
|
||||
procedure Extract_Students is
|
||||
Sample_String : String :=
|
||||
"<Students>" &
|
||||
"<Student Name=""April"" Gender=""F"" DateOfBirth=""1989-01-02"" />" &
|
||||
"<Student Name=""Bob"" Gender=""M"" DateOfBirth=""1990-03-04"" />" &
|
||||
"<Student Name=""Chad"" Gender=""M"" DateOfBirth=""1991-05-06"" />" &
|
||||
"<Student Name=""Dave"" Gender=""M"" DateOfBirth=""1992-07-08"">" &
|
||||
"<Pet Type=""dog"" Name=""Rover"" />" &
|
||||
"</Student>" &
|
||||
"<Student DateOfBirth=""1993-09-10"" Gender=""F"" Name=""Émily"" />" &
|
||||
"</Students>";
|
||||
Input : Input_Sources.Strings.String_Input;
|
||||
Reader : DOM.Readers.Tree_Reader;
|
||||
Document : DOM.Core.Document;
|
||||
List : DOM.Core.Node_List;
|
||||
begin
|
||||
Input_Sources.Strings.Open (Sample_String, Unicode.CES.Utf8.Utf8_Encoding, Input);
|
||||
DOM.Readers.Parse (Reader, Input);
|
||||
Input_Sources.Strings.Close (Input);
|
||||
Document := DOM.Readers.Get_Tree (Reader);
|
||||
List := DOM.Core.Documents.Get_Elements_By_Tag_Name (Document, "Student");
|
||||
for I in 0 .. DOM.Core.Nodes.Length (List) - 1 loop
|
||||
Ada.Text_IO.Put_Line
|
||||
(DOM.Core.Attrs.Value
|
||||
(DOM.Core.Nodes.Get_Named_Item
|
||||
(DOM.Core.Nodes.Attributes
|
||||
(DOM.Core.Nodes.Item (List, I)), "Name")
|
||||
)
|
||||
);
|
||||
end loop;
|
||||
DOM.Readers.Free (Reader);
|
||||
end Extract_Students;
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
with League.Application;
|
||||
with XML.SAX.Input_Sources.Streams.Files;
|
||||
with XML.SAX.Simple_Readers;
|
||||
|
||||
with Handlers;
|
||||
|
||||
procedure Main is
|
||||
Handler : aliased Handlers.Handler;
|
||||
Input : aliased XML.SAX.Input_Sources.Streams.Files.File_Input_Source;
|
||||
Reader : aliased XML.SAX.Simple_Readers.SAX_Simple_Reader;
|
||||
|
||||
begin
|
||||
Input.Open_By_File_Name (League.Application.Arguments.Element (1));
|
||||
Reader.Set_Content_Handler (Handler'Unchecked_Access);
|
||||
Reader.Parse (Input'Unchecked_Access);
|
||||
end Main;
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
with League.Strings;
|
||||
with XML.SAX.Attributes;
|
||||
with XML.SAX.Content_Handlers;
|
||||
|
||||
package Handlers is
|
||||
|
||||
type Handler is
|
||||
limited new XML.SAX.Content_Handlers.SAX_Content_Handler with null record;
|
||||
|
||||
overriding procedure Start_Element
|
||||
(Self : in out Handler;
|
||||
Namespace_URI : League.Strings.Universal_String;
|
||||
Local_Name : League.Strings.Universal_String;
|
||||
Qualified_Name : League.Strings.Universal_String;
|
||||
Attributes : XML.SAX.Attributes.SAX_Attributes;
|
||||
Success : in out Boolean);
|
||||
|
||||
overriding function Error_String
|
||||
(Self : Handler) return League.Strings.Universal_String;
|
||||
|
||||
end Handlers;
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
with Ada.Wide_Wide_Text_IO;
|
||||
|
||||
package body Handlers is
|
||||
|
||||
use type League.Strings.Universal_String;
|
||||
|
||||
function "+"
|
||||
(Item : Wide_Wide_String) return League.Strings.Universal_String
|
||||
renames League.Strings.To_Universal_String;
|
||||
|
||||
------------------
|
||||
-- Error_String --
|
||||
------------------
|
||||
|
||||
overriding function Error_String
|
||||
(Self : Handler) return League.Strings.Universal_String is
|
||||
begin
|
||||
return League.Strings.Empty_Universal_String;
|
||||
end Error_String;
|
||||
|
||||
-------------------
|
||||
-- Start_Element --
|
||||
-------------------
|
||||
|
||||
overriding procedure Start_Element
|
||||
(Self : in out Handler;
|
||||
Namespace_URI : League.Strings.Universal_String;
|
||||
Local_Name : League.Strings.Universal_String;
|
||||
Qualified_Name : League.Strings.Universal_String;
|
||||
Attributes : XML.SAX.Attributes.SAX_Attributes;
|
||||
Success : in out Boolean) is
|
||||
begin
|
||||
if Qualified_Name = +"Student" then
|
||||
Ada.Wide_Wide_Text_IO.Put_Line
|
||||
(Attributes.Value (+"Name").To_Wide_Wide_String);
|
||||
end if;
|
||||
end Start_Element;
|
||||
|
||||
end Handlers;
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
( :?names
|
||||
& ( get$("students.xml",X,ML)
|
||||
: ?
|
||||
( ( Student
|
||||
. (? (Name.?name) ?,)
|
||||
| ? (Name.?name) ?
|
||||
)
|
||||
& !names !name:?names
|
||||
& ~
|
||||
)
|
||||
?
|
||||
| !names
|
||||
)
|
||||
)
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
( :?names
|
||||
& ( get
|
||||
$ ( "<Students>
|
||||
<Student Name=\"April\" Gender=\"F\" DateOfBirth=\"1989-01-02\" />
|
||||
<Student Name=\"Bob\" Gender=\"M\" DateOfBirth=\"1990-03-04\" />
|
||||
<Student Name=\"Chad\" Gender=\"M\" DateOfBirth=\"1991-05-06\" />
|
||||
<Student Name=\"Dave\" Gender=\"M\" DateOfBirth=\"1992-07-08\">
|
||||
<Pet Type=\"dog\" Name=\"Rover\" />
|
||||
</Student>
|
||||
<Student DateOfBirth=\"1993-09-10\" Gender=\"F\" Name=\"Émily\" />
|
||||
</Students>"
|
||||
, MEM
|
||||
, X
|
||||
, ML
|
||||
)
|
||||
: ?
|
||||
( ( Student
|
||||
. (? (Name.?name) ?,)
|
||||
| ? (Name.?name) ?
|
||||
)
|
||||
& !names !name:?names
|
||||
& ~
|
||||
)
|
||||
?
|
||||
| !names
|
||||
)
|
||||
)
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
[xml]$xml = @'
|
||||
<Students>
|
||||
<Student Name="April" Gender="F" DateOfBirth="1989-01-02" />
|
||||
<Student Name="Bob" Gender="M" DateOfBirth="1990-03-04" />
|
||||
<Student Name="Chad" Gender="M" DateOfBirth="1991-05-06" />
|
||||
<Student Name="Dave" Gender="M" DateOfBirth="1992-07-08">
|
||||
<Pet Type="dog" Name="Rover" />
|
||||
</Student>
|
||||
<Student DateOfBirth="1993-09-10" Gender="F" Name="Émily" />
|
||||
</Students>
|
||||
'@
|
||||
|
||||
foreach ($node in $xml.DocumentElement.ChildNodes) {$node.Name}
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
REBOL [
|
||||
Title: "XML Reading"
|
||||
URL: http://rosettacode.org/wiki/XML_Reading
|
||||
]
|
||||
|
||||
xml: {
|
||||
<Students>
|
||||
<Student Name="April" Gender="F" DateOfBirth="1989-01-02" />
|
||||
<Student Name="Bob" Gender="M" DateOfBirth="1990-03-04" />
|
||||
<Student Name="Chad" Gender="M" DateOfBirth="1991-05-06" />
|
||||
<Student Name="Dave" Gender="M" DateOfBirth="1992-07-08">
|
||||
<Pet Type="dog" Name="Rover" />
|
||||
</Student>
|
||||
<Student DateOfBirth="1993-09-10" Gender="F" Name="Émily" />
|
||||
</Students>
|
||||
}
|
||||
|
||||
; REBOL has a simple built-in XML parser. It's not terribly fancy, but
|
||||
; it's easy to use. It converts the XML into a nested list of blocks
|
||||
; which can be accessed using standard REBOL path operators. The only
|
||||
; annoying part (in this case) is that it does try to preserve
|
||||
; whitespace, so some of the parsed elements are just things like line
|
||||
; endings and whatnot, which I need to ignore.
|
||||
|
||||
; Once I have drilled down to the individual student records, I can
|
||||
; just use the standard REBOL 'select' to locate the requested
|
||||
; property.
|
||||
|
||||
data: parse-xml xml
|
||||
students: data/3/1/3 ; Drill down to student records.
|
||||
foreach student students [
|
||||
if block! = type? student [ ; Ignore whitespace elements.
|
||||
print select student/2 "Name"
|
||||
]
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue