progress
This commit is contained in:
parent
28ea686db3
commit
87ee8bcda7
|
@ -4,12 +4,16 @@
|
|||
"nav": ["ul#nav li"],
|
||||
"post(#posts li)": [{
|
||||
"title": "h2",
|
||||
"paras": ["p"],
|
||||
"subcomments": [{
|
||||
"paras": ["./p"],
|
||||
"comments": [{
|
||||
"title": "#comments h3",
|
||||
"tags": ["#comments p"]
|
||||
"paras": ["#comments p"]
|
||||
}]
|
||||
}]
|
||||
}]
|
||||
}
|
||||
|
||||
___ can you even build a key on this? (exslt node-set?!!?!?)
|
||||
| | | | | | | | | | | |
|
||||
|
||||
for-each group-after(h1)[1] / (#posts li)[1] / group-after(#comments h3)[1] / #comments p
|
||||
|
|
|
@ -40,5 +40,6 @@
|
|||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<h1>another title -- empty page</h1>
|
||||
</body>
|
||||
</html>
|
|
@ -11,9 +11,9 @@
|
|||
"post(#posts li)": [{
|
||||
"title": "h2",
|
||||
"paras": ["p"],
|
||||
"subcomments": [{
|
||||
"comments": [{
|
||||
"title": "#comments h3",
|
||||
"tags": ["#comments p"]
|
||||
"paras": ["#comments p"]
|
||||
}]
|
||||
}]
|
||||
}]
|
||||
|
@ -21,33 +21,65 @@
|
|||
-->
|
||||
|
||||
<xsl:template match="/">
|
||||
<dexter:root>
|
||||
<page>
|
||||
<dexter:groups>
|
||||
<dexter:group>
|
||||
<title></title>
|
||||
<nav><dexter:groups><dexter:group></dexter:group></dexter:groups></nav>
|
||||
<post>
|
||||
<dexter:groups>
|
||||
<dexter:group>
|
||||
<title></title>
|
||||
<paras><dexter:groups><dexter:group></dexter:group></dexter:groups></paras>
|
||||
<subcomments>
|
||||
<dexter:groups>
|
||||
<dexter:group>
|
||||
<title></title>
|
||||
<tags><dexter:groups><dexter:group></dexter:group></dexter:groups></tags>
|
||||
</dexter:group>
|
||||
</dexter:groups>
|
||||
</subcomments>
|
||||
</dexter:group>
|
||||
</dexter:groups>
|
||||
</post>
|
||||
</dexter:group>
|
||||
</dexter:groups>
|
||||
</page>
|
||||
<dexter:root xmlns:dexter="http://kylemaxwell.com/dexter">
|
||||
<page>
|
||||
<dexter:groups>
|
||||
<xsl:for-each select="//h1">
|
||||
<xsl:variable name="index1" select="last() - position()" />
|
||||
<dexter:group>
|
||||
<title><xsl:value-of select="." /></title>
|
||||
<nav>
|
||||
<dexter:groups>
|
||||
<xsl:for-each select="set:intersection(key('key1', $index1), //ul[@id='nav']//li)">
|
||||
<dexter:group>
|
||||
<xsl:value-of select="." />
|
||||
</dexter:group>
|
||||
</xsl:for-each>
|
||||
</dexter:groups>
|
||||
</nav>
|
||||
<post>
|
||||
<dexter:groups>
|
||||
<xsl:for-each select="set:intersection(key('key1', $index1), //*[@id='posts']//li)">
|
||||
<xsl:variable name="post" value="position()" />
|
||||
<dexter:group>
|
||||
<title><xsl:value-of select=".//h2" /></title>
|
||||
<paras>
|
||||
<dexter:groups>
|
||||
<xsl:for-each select="./p">
|
||||
<dexter:group><xsl:value-of select="."/></dexter:group>
|
||||
</xsl:for-each>
|
||||
</dexter:groups>
|
||||
</paras>
|
||||
<comments>
|
||||
<dexter:groups>
|
||||
<xsl:for-each select=".//*[@id='comments']//h3">
|
||||
<xsl:variable name="index2" select="$index1 + (last() - position())" />
|
||||
<dexter:group>
|
||||
<title><xsl:value-of select="."/></title>
|
||||
<paras>
|
||||
<dexter:groups>
|
||||
<xsl:for-each select="set:intersection(key('key2', $index2), //p)">
|
||||
<dexter:group><xsl:value-of select="."/></dexter:group>
|
||||
</xsl:for-each>
|
||||
</dexter:groups>
|
||||
</paras>
|
||||
</dexter:group>
|
||||
</xsl:for-each>
|
||||
</dexter:groups>
|
||||
</comments>
|
||||
</dexter:group>
|
||||
</xsl:for-each>
|
||||
</dexter:groups>
|
||||
</post>
|
||||
</dexter:group>
|
||||
</xsl:for-each>
|
||||
</dexter:groups>
|
||||
</page>
|
||||
</dexter:root>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="key1" match="//*" use="count(following::h1)" />
|
||||
<xsl:key name="key2" match="//*" use="count(following::*[@id='comments']//h3)" />
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
||||
|
|
Loading…
Reference in New Issue