XML/Input: Difference between revisions
Content added Content deleted
(XML/Input in FreeBASIC) |
imported>Regattaguru |
||
Line 3,641: | Line 3,641: | ||
Émily |
Émily |
||
Nil</syntaxhighlight> |
Nil</syntaxhighlight> |
||
=={{header|Swift}}== |
|||
<syntaxhighlight lang="swift"> |
|||
import Foundation |
|||
let xmlString = """ |
|||
<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> |
|||
""" |
|||
if let xmlData = xmlString.data(using: .utf8) { |
|||
do { |
|||
let doc = try XMLDocument(data: xmlData) |
|||
print("Using XPath:") |
|||
for node in try doc.nodes(forXPath: "/Students/Student/@Name") { |
|||
guard let name = node.stringValue else { continue } |
|||
print(name) |
|||
} |
|||
print("Using node walk") |
|||
if let root = doc.rootElement() { |
|||
for child in root.elements(forName: "Student") { |
|||
guard let name = child.attribute(forName: "Name")?.stringValue else { continue } |
|||
print(name) |
|||
} |
|||
} |
|||
} catch { |
|||
debugPrint(error) |
|||
} |
|||
} |
|||
</syntaxhighlight> |
|||
Output: |
|||
<syntaxhighlight lang="shell"> |
|||
~ % ./XMLInput |
|||
Using XPath: |
|||
April |
|||
Bob |
|||
Chad |
|||
Dave |
|||
Émily |
|||
Using node walk |
|||
April |
|||
Bob |
|||
Chad |
|||
Dave |
|||
Émily |
|||
</syntaxhighlight> |
|||
=={{header|Tcl}}== |
=={{header|Tcl}}== |