最近,我对使用 Windows 语音识别宏尝试一些 XML 和 Javascript 产生了兴趣。这是我对这两种语言的第一次体验,但由于我的编程历史很短,我认为我可以深入研究。到目前为止,它进展顺利。但是现在我正在尝试对我的宏实现更深层次的交互性,我开始遇到错误,我无法在网上找到解释,所以我来这里寻求你的帮助。
这是给我带来问题的宏:
<command>
<listenFor>Whats the weather like in [CityName]</listenFor>
<script language="JScript">
<![CDATA[
var xml_doc = new ActiveXObject("Microsoft.XMLDOM");
xml_doc.async = false;
xml_doc.load("http://api.openweathermap.org/data/2.5/weather?q={[CityName]}&mode=xml");
var city = xml_doc.getElementByTagName("city").getAttribute("name");
var temperature = xml_doc.getElementByTagName("temperature");
Application.Speak(city);
]]>
</script>
</command>
这是错误消息:
Error compiling grammar for speech Macros:
"AI-base.WSRMac"
==========
Line 40: 80045048 - Invalid rule reference to <RULEREF NAME="CityName" REFID=""/>
==========
00001:
00002: <GRAMMAR LANGID="0409">
...
...
...
00038: <RULE NAME="Rule_8">
00039: <P>
00040: <p>Whats the weather like in </p><ruleref name="CityName" propname="CityName" />
00041: </P>
00042: </RULE>
00043: <RULE name="build:namedDictation"><dictation min="1" max="10"/></RULE>
00044: </GRAMMAR>
我试图用这个宏做的是从用户那里获取一个城市名称并获取该位置的天气,用几个变量输出它,然后让它以我喜欢的格式告诉我天气。
有人可以解释我做错了什么以及如何解决吗?
在此先感谢:) -Dirk