我希望以下代码中的前两个正则表达式组值为空(对其他人的代码进行故障排除):
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xd="http://www.oxygenxml.com/ns/doc/xsl"
exclude-result-prefixes="xs xd"
version="2.0">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:analyze-string select="'1949'" regex="([0-9]{{1,2}})?\s?([A-Z]regex-group(1)=1
regex-group(2)=
regex-group(3)=1949
[a-z]{{1,8}}\.?)?\s?([0-9]{{4}})">
<xsl:matching-substring>
<xsl:text>regex-group(1)=</xsl:text><xsl:value-of select="regex-group(1)"/><xsl:text>
</xsl:text>
<xsl:text>regex-group(2)=</xsl:text><xsl:value-of select="regex-group(2)"/><xsl:text>
</xsl:text>
<xsl:text>regex-group(3)=</xsl:text><xsl:value-of select="regex-group(3)"/><xsl:text>
</xsl:text>
</xsl:matching-substring>
</xsl:analyze-string>
</xsl:template>
</xsl:stylesheet>
但是(使用saxon 9.6.0.5 [更新 - 也是撒克逊9.6.0.7])我得到:
import flash.utils.Timer;
import flash.events.TimerEvent;
stop();
var timmyTimer:Timer = new Timer(3000)
var score:int = 0;
timmyTimer.addEventListener(TimerEvent.TIMER, tick)
Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
timmyTimer.start();
function tick(t:TimerEvent):void {
if(t.target.delay > 500){
t.target.delay -= 100; }
addChild(mcBall);
mcBall.x = Math.floor(Math.random() *(stage.stageWidth - mcBall.width));
mcBall.y = Math.floor(Math.random() *(stage.stageHeight - mcBall.height));
mcBall.nextFrame();
}
stop();
mcBall.addEventListener(TouchEvent.TOUCH_TAP, fl_TapHandler);
function fl_TapHandler(event:TouchEvent):void {
timmyTimer.reset();
score +=1;
updateScores();
mcBall.x = Math.floor(Math.random() *(stage.stageWidth - mcBall.width));
mcBall.y = Math.floor(Math.random() *(stage.stageHeight - mcBall.height));
mcBall.nextFrame();
removeChild(mcBall);
}
function updateScores():void {
lblScore.text = String(score);
}
function endGame():void {
timmyTimer.stop();
gotoAndStop(3);
mcBall.removeEventListener(TouchEvent.TOUCH_TAP, fl_TapHandler);
removeEventListener(TimerEvent.TIMER, tick);
removeEventListener(TouchEvent.TOUCH_TAP, fl_TapHandler);
removeChild(mcBall);
}
我正在调试其他以前有效的代码:这是撒克逊人的错误吗?或者我错过了导致“1&#39; 1&#39;要退回吗?
答案 0 :(得分:0)
由于这给出了saxon 9.5.1.7的预期结果,我认为这是一个错误,所以我已经与Saxonica打开了一份报告。
答案 1 :(得分:0)
该漏洞也出现在Saxon-HE版本9.7.0-5中。我不得不降级到版本9.6.0-7以使代码生效。我使用的是版本9.6.0-7,因为氧气中的嵌入式xslt引擎(代码工作正常)使用了那个确切的版本。