CSCI 5931A.1
XML Application Development
Summer 2002
Suggested Solution to Final Examination
(1) For example.
(a) /*/*/* (this is better than /yuecomp:yuecomp/*/*.
(b) //@*[namespace-uri()='http://dcm.uhcl.edu/yue/yuecomp'] or //@*[starts-with(name(),
'yuecomp:')]
(c) //*[count(@*) = 2].
(d) //*[@yuecomp:diff='same']
(e) //*[@yuecomp:diff='same']/descendant-or-self::*
(f) count(//@*[. = '1'])
(2) For example,
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xalan="http://xml.apache.org/xslt">
<xsl:output method="xml" version="1.0" indent="yes" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="dummy[not(@c='1')]" />
</xsl:stylesheet>
(3) For example,
private static void printOutXml(org.jdom.Element
root, int level) {
printIndent(level);
System.out.println("<" + root.getName() +
" numAttributes=\"" +
root.getAttributes().size() + "\">");
Iterator iterator = root.getContent().iterator();
while (iterator.hasNext()) {
Object obj = iterator.next();
if (obj instanceof org.jdom.Element)
printOutXml((Element)
obj, level+1);
}
printIndent(level);
System.out.println("</" + root.getName() +
">");
} // PrintOutXml
private static void printIndent(int level) {
for (int i=0; i < level; i++) System.out.print("
");
} // printIndent