これは私がJava側から問題を解決するために行ったことです。 AIMLProcessorExtensionを実装するクラスを作成します。クラスは
public class TestAIMLExtenstion implements AIMLProcessorExtension
{
public Set<String> extensionTagNames = Utilities.stringSet("contactid","multipleids","displayname","dialnumber","emailaddress","contactbirthday","addinfo");
public Set <String> extensionTagSet() {
return extensionTagNames;
}
public String recursEval(Node node, ParseState ps) {
try {
String nodeName = node.getNodeName();
if (nodeName.equals("contactid"))
return contactId(node, ps);
else if (nodeName.equals("multipleids"))
return multipleIds(node, ps);
else if (nodeName.equals("dialnumber"))
return dialNumber(node, ps);
else if (nodeName.equals("addinfo"))
return newContact(node, ps);
else if (nodeName.equals("displayname"))
return displayName(node, ps);
else if (nodeName.equals("emailaddress"))
return emailAddress(node, ps);
else if (nodeName.equals("contactbirthday"))
return contactBirthday(node, ps) ;
else return (AIMLProcessor.genericXML(node, ps));
} catch (Exception ex) {
ex.printStackTrace();
return "";
}
}
}
、以下のようになります。そして、私のメインクラスで私は上記のアプローチを使用してメートルの実装を行っているようなもの、
AIMLProcessor.extension = new TestAIMLExtenstion();
を追加しました。
こんにちは..この問題は解決しましたか? – Jugi
@Jugiはい。しかし私はそれを非常に原油的に解決しました。だから私がやったのは、ある機能を呼び出すために必要だったaimlの返信の前に#記号を追加することでした。 #が(splitメソッドを使用して)javaコードによって検出された場合、特定の関数がスイッチケースを使用して呼び出されました。私はまた、疑問を持って私のaimlファイルを表示することができます。 –
ありがとうございます。私はAIMLProcessorExtensionを使ってこれに対する解決策を見つけました。私はポストで私の答えを共有します。同時に、あなたの実装を共有して、これをどのように解決したかを知ってください。 – Jugi