如何从 C# 中的 SRGS .grxml 文件中读取语义标签?
Posted
技术标签:
【中文标题】如何从 C# 中的 SRGS .grxml 文件中读取语义标签?【英文标题】:How do I read the semantic tags from an SRGS .grxml file in C#? 【发布时间】:2012-10-21 11:56:00 【问题描述】:假设我从下面的语法中得到了这个简单的部分:
<rule id="WhoAreYou" scope="private">
<one-of>
<item>who</item>
<item>what</item>
</one-of>
<item>
are
you
</item>
<tag>1000</tag>
</rule>
如何从标签中适当地返回“1000”?我正在使用 System.Speech 库,并尝试将此值返回给使用 SpeechRecognizedEventArgs 的方法。
【问题讨论】:
【参考方案1】:如果字符串中有 xml 的那部分,则可以将字符串解析为 LINQ to XML XDocument 和 XDocument.Parse(string)
,并使用它来获取值。阅读 LINQ to XML here :)
【讨论】:
Josh 不是指标签元素之间的实际值(即值 1000);他指的是 VoiceXML 浏览器作为语音输入的结果返回的内容。这个问题的措辞不是很好。这与其说是一个 C#/XML 问题,不如说是使用哪个影子变量来获得他想要的结果。【参考方案2】:其实我只是想通了。我正在使用 e.Result.Semantics.Value.ToString() ,它返回的文本与所说的完全相同。我意识到我已经设置了 tag-format="semantics-ms/1.0" 时将其设置为 tag-format="semantics/1.0" 解释了标签应该如此。
【讨论】:
以上是关于如何从 C# 中的 SRGS .grxml 文件中读取语义标签?的主要内容,如果未能解决你的问题,请参考以下文章