我有一个XML文件,其中数据以这种方式出现:
<ROOT>
<LINE>
<CODE>ZTAP</CODE>
<TEXT>ZTAP TEXTVALUE</TEXT>
</LINE>
<LINE>
<CODE>TAD</CODE>
<TEXT>TAD TEXTVALUE1</TEXT>
</LINE>
<LINE>
<CODE>TAD</CODE>
<TEXT>TAD TEXTVALUE2</TEXT>
</LINE>
<LINE>
<CODE>ZTAQ</CODE>
</LINE>
<LINE>
<TEXT>ZTAQ TEXT1</TEXT>
</LINE>
<LINE>
<TEXT>ZTAQ TEXT2</TEXT>
</LINE>
</ROOT>
可以更改ZTAP和ZTAQ线的位置,例如
<ROOT>
<LINE>
<CODE>ZTAQ</CODE>
</LINE>
<LINE>
<TEXT>ZTAQ TEXT1</TEXT>
</LINE>
<LINE>
<TEXT>ZTAQ TEXT2</TEXT>
</LINE>
<LINE>
<CODE>ZTAP</CODE>
<TEXT>ZTAP TEXTVALUE</TEXT>
</LINE>
<LINE>
<CODE>TAD</CODE>
<TEXT>TAD TEXTVALUE1</TEXT>
</LINE>
<LINE>
<CODE>TAD</CODE>
<TEXT>TAD TEXTVALUE2</TEXT>
</LINE>
</ROOT>
我需要选择ZTAP LINES,我可以通过模板匹配轻松完成。但我还需要选择所有那些前一节点为ZTAQ的LINES。很少有其他带有TAD CODE的LINED不应该被选中,所以如果我采用第二个例子,那么结果应该是:
ZTAQ TEXT1
ZTAQ TEXT2
ZTAP TEXTVALUE
由于其他CODE LINES,我之前的兄弟声明正在与ZTAP和ZTAQ混合。:
xsl:template match="LINE" mode="test">
<xsl:if test="preceding-sibling::LINE[CODE = 'ZTAQ'] and not(preceding-sibling::LINE[CODE = 'ZTAP'</xsl:if>
</xsl:template>
有人可以帮忙吗?
答案 0 :(得分:0)
我需要选择ZTAP LINES,我可以通过模板轻松完成 比赛。但我还需要选择其前一个节点所有的LINES ZTAQ。
如果我理解正确,你想打电话:
history.pushState(null, document.title, location.href);
window.addEventListener('popstate', function (event) {
history.pushState(null, document.title, location.href);
});