XML/XPath: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) (→{{header|Perl 6}}: Add a Perl 6 example) |
|||
Line 1,942: | Line 1,942: | ||
print $x->findnodes_as_string('//price'); |
print $x->findnodes_as_string('//price'); |
||
$x->findnodes('//name')->get_nodelist;</lang> |
$x->findnodes('//name')->get_nodelist;</lang> |
||
=={{header|Perl 6}}== |
|||
<lang perl6>use XML::XPath; |
|||
my $XML = XML::XPath.new(xml => q:to/END/); |
|||
<inventory title="OmniCorp Store #45x10^3"> |
|||
<section name="health"> |
|||
<item upc="123456789" stock="12"> |
|||
<name>Invisibility Cream</name> |
|||
<price>14.50</price> |
|||
<description>Makes you invisible</description> |
|||
</item> |
|||
<item upc="445322344" stock="18"> |
|||
<name>Levitation Salve</name> |
|||
<price>23.99</price> |
|||
<description>Levitate yourself for up to 3 hours per application</description> |
|||
</item> |
|||
</section> |
|||
<section name="food"> |
|||
<item upc="485672034" stock="653"> |
|||
<name>Blork and Freen Instameal</name> |
|||
<price>4.95</price> |
|||
<description>A tasty meal in a tablet; just add water</description> |
|||
</item> |
|||
<item upc="132957764" stock="44"> |
|||
<name>Grob winglets</name> |
|||
<price>3.56</price> |
|||
<description>Tender winglets of Grob. Just add water</description> |
|||
</item> |
|||
</section> |
|||
</inventory> |
|||
END |
|||
put "First item:\n", $XML.find('//item[1]')[0]; |
|||
put "\nPrice elements:"; |
|||
.contents.put for $XML.find('//price').List; |
|||
put "\nName elements:\n", $XML.find('//name')».contents.join: ', ';</lang> |
|||
{{out}} |
|||
<pre>First item: |
|||
<item upc="123456789" stock="12"> <name>Invisibility Cream</name> <price>14.50</price> <description>Makes you invisible</description> </item> |
|||
Price elements: |
|||
14.50 |
|||
23.99 |
|||
4.95 |
|||
3.56 |
|||
Name elements: |
|||
Invisibility Cream, Levitation Salve, Blork and Freen Instameal, Grob winglets</pre> |
|||
=={{header|PHP}}== |
=={{header|PHP}}== |