February 27, 2002 - Switching between XSLT and XPath
![]() |
February 27, 2002 Switching between XSLT and XPath Tips: February 2002
Yehuda Shiran, Ph.D.
|
DOMDocument tree: XSLT Patterns and XPath. The XPath format is richer than the XSLT Patterns, and supports many XSLT Patterns. XSLT Patterns are the default. To change to XPath, you need to change the selectionLanguage. Here is a demo:
function applyPatterns() {
var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
xmlDoc.async = false;
xmlDoc.load("mydvd7.xml");
xmlDoc.setProperty("SelectionLanguage", "XPath");
var matchedNodes = xmlDoc.selectNodes('/sales//month');
alert("Number of matched nodes: " + matchedNodes.length);
}
Try it. You should get three nodes, for the three months reported in our mydvd7.xml file:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="mydvd7.xsl"?>
<!DOCTYPE sales SYSTEM "mydvd7.dtd">
<sales>
<summary>
<heading>MyDVD Rental Store</heading>
<subhead>Periodical Sales Report</subhead>
<description>Sales Report for January, February,
and <&month;> of 2001</description>
<author>author: &preparedby;</author>
<date>Jan 30, 2002</date>
</summary>
<data>
<month>
<name>January 2001</name>
<week number="1" dvds_rented="12000" />
<week number="2" dvds_rented="15000" />
<week number="3" dvds_rented="18000" />
<week number="4" dvds_rented="11800" />
</month>
<month>
<name>February 2001</name>
<week number="1" dvds_rented="11500" />
<week number="2" dvds_rented="12390" />
<week number="3" dvds_rented="19050" />
<week number="4" dvds_rented="11200" />
</month>
<month>
<name>March 2001</name>
<week number="1" dvds_rented="15300" />
<week number="2" dvds_rented="12390" />
<week number="3" dvds_rented="10050" />
<week number="4" dvds_rented="11230" />
</month>
</data>
</sales>


Find a programming school near you