我正在尝试在我的WML教科书中找到的变量上运行这个WML示例,但每次在同一行/语句中都会给我一个错误。这是代码:
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN"
"http://www.wapforum.org/DTD/wml13.dtd">
<wml>
<card id="card1" title="First Card" newcontext="true">
<p>
Card 1... <br/>
card1 var1=$(card1_var1) <br/>
card2 var1=$(card2_var1) <br/>
card3 var1=$(card3_var1) <br/>
<do type="accept" label="Next Card">
<go href="#card2">
<setvar name="card1_var1" value="val_1"/>
</go>
</do>
</p>
</card>
<card id="card2" title="Second Card">
<p>
Card2 ...<br/>
Card1 var1 = $(card1_var1) <br/>
Card2 var1 = $(card2_var1) <br/>
Card3 var1 = $(card3_var1) <br/>
<do type="accept" label="First Card">
<go href="#card1"/>
</do>
<do type="accept" label="Third Card">
<go href="#card3">
<setvar name="card2_var1" value="val_2"/>
</go>
</do>
<do type="prev" label="Previous Card">
<prev/>
</do>
</p>
</card>
<card id="card3" title="Third Card">
<onevent type="onenterforward">
<refresh>
<setvar name="card3_var1 " value="val_3"/>
</refresh>
</onevent>
<p>
Card 3 ...<br/>
Card1 var1 = $(card1_var1) <br/>
Card2 var1 = $(card2_var1) <br/>
Card3 var1 = $(card3_var1) <br/>
<do type="prev" label="Previous">
<prev/>
</do>
</p>
</card>
我在第26行遇到错误。即使在那里定义了类型,它仍然会给出错误。
答案 0 :(得分:0)
您发布的示例有一些错误导致验证失败。这些可能只是在发布到StackOverflow时的剪切和粘贴问题,或者可能导致解析器失败的实际错误。
第1行:XML声明<?xml version="1.0"?>
应位于第一列;在你的例子中,它是缩进的。
第53行:缺少结束WML标记</wml>
。
还有两个可能有用的小修补程序:
第1行:向XML声明添加编码,例如<?xml version="1.0" encoding="UTF-8"?>
第40行:name="card3_var1 "
中有一个错误的空格字符,因此变量无法正确更新
根据W3C验证器,您的WML会根据W3C验证器进行校正,因此应该没问题。我在Openwave 6.2.2 SDK中尝试过,它似乎没有任何错误。
更正示例:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN"
"http://www.wapforum.org/DTD/wml13.dtd">
<wml>
<card id="card1" title="First Card" newcontext="true">
<p>
Card 1... <br/>
card1 var1=$(card1_var1) <br/>
card2 var1=$(card2_var1) <br/>
card3 var1=$(card3_var1) <br/>
<do type="accept" label="Next Card">
<go href="#card2">
<setvar name="card1_var1" value="val_1"/>
</go>
</do>
</p>
</card>
<card id="card2" title="Second Card">
<p>
Card2 ...<br/>
Card1 var1 = $(card1_var1) <br/>
Card2 var1 = $(card2_var1) <br/>
Card3 var1 = $(card3_var1) <br/>
<do type="accept" label="First Card">
<go href="#card1"/>
</do>
<do type="accept" label="Third Card">
<go href="#card3">
<setvar name="card2_var1" value="val_2"/>
</go>
</do>
<do type="prev" label="Previous Card">
<prev/>
</do>
</p>
</card>
<card id="card3" title="Third Card">
<onevent type="onenterforward">
<refresh>
<setvar name="card3_var1" value="val_3"/>
</refresh>
</onevent>
<p>
Card 3 ...<br/>
Card1 var1 = $(card1_var1) <br/>
Card2 var1 = $(card2_var1) <br/>
Card3 var1 = $(card3_var1) <br/>
<do type="prev" label="Previous">
<prev/>
</do>
</p>
</card>
</wml>