2015-11-26 17 views
6

Ho un file XML Cortana e ho bisogno di inserire un numero. Cosa devo fare per assicurarmi di poterlo convertire in un numero?Parse number with cortana

<Command Name="AddMoney"> 
    <Example> Add 10 dollars </Example> 
    <ListenFor> add {amount} {currency} </ListenFor> 
    <Feedback> Adding some money </Feedback> 
    <Navigate/> 
</Command> 

<PhraseList Label="currency"> 
    <item>dollar</item> 
    <item>euro</item> 
    <item>pound</item> 
</PhraseList> 

<PhraseList Label="amount"> 
</PhraseList> 

risposta

4

Ho trovato un modo per ricevere i numeri, ma non è perfetto.

<PhraseTopic Label="amount" Scenario="Commands"> 
    <Subject>Phone Number</Subject> 
</PhraseTopic> 

Nota sto usando PhraseTopic invece di PhraseList. Non so in realtà quale sia il migliore in questo campo, ma ho trovato Commands per ottenere risultati migliori rispetto al set Scenario. Il tag PhraseTopic deve essere posizionato dopo tutti i tag PhraseList per qualche strano motivo ...

Quando si cerca soggetti, la funzione di completamento automatico ha mostrato un paio di opzioni in cui il più promettente erano Date/Time, Addresses e Phone Number. Quando provo con più soggetti, non potrei mai avere una corrispondenza, ma con "Numero di telefono" (o semplicemente "Numero" anche se non esiste tale opzione) sono riuscito a ricevere valori numerici in qualche modo coerenti.

Il numero viene visualizzato in cifre, quindi ho solo bisogno di int.TryParse(myText, out myNumber) e lo uso o dico qualcosa come "immissione di numeri non validi".

Essere consapevoli del fatto che qualsiasi cosa può essere di ingresso qui, anche con le restrizioni del soggetto e dello scenario ... Il folowing funziona:

"Hey Cortana, MyAppName add blah blah blah dollars" 

E l'importo sarà letteralmente "blah blah blah"