当前位置: 首页 > 知识库问答 >
问题:

使用Java中的web服务检索XML数据

陆曜文
2023-03-14

关于必须从XML文件中检索和检查有效元素的Web服务,我需要一些帮助。web服务方法应该如下所示-翻译(“花”、“英语”、“俄语”),客户机应该能够允许您输入所需的单词、原始语言和目标语言。如果XML文件中存在这些内容,那么它的翻译将显示在客户端,如果不存在,它将显示一条错误消息。

我创建了一个标准的web服务方法-add(int a,int b)并使用普通java应用程序创建了客户机部分,添加了一个swing GUI,与wsdl链接连接,该方法工作良好。对我来说,如何使这个程序发挥作用是最好的?请指教。

@WebMethod(operationName = "translate")
    public String translate(@WebParam(name = "word") String word, 
            @WebParam(name = "originalLanguage") String originalLanguage, 
            @WebParam(name = "targetLanguage") String targetLanguage) 
            throws Exception {

        XMLSource dataLSource = new XMLSource();
        return dataLSource.getTranslation(word);

    }
<?xml version="1.0" encoding="UTF-8"?>
<translation>
    <word>
        <english>car</english>
        <russian>avtomobil</russian>    
    </word>
    <word>
        <english>flower</english>
        <russian>tsvetok</russian>    
    </word>
    <word>
        <english>butterfly</english>
        <russian>babochka</russian>   
    </word>
</translation>

也是XML源类:

public class XMLSource {

    private Document readData() throws Exception{

        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        File xmlFile = new File("translation.xml");
        return db.parse(new FileInputStream(xmlFile));

    }

    public String getTranslation(String original) throws Exception{

        Document doc = readData();
        XPathFactory xpf = XPathFactory.newInstance();
        XPath xp = xpf.newXPath();
        XPathExpression xpe = xp.compile("/translation/word/russian[../english"
                + "/text()='"+original+"'] ");
        String translated = (String) xpe.evaluate(doc, XPathConstants.STRING);
        return translated;

    }    
}

程序的客户端GUI示例

共有1个答案

蒋波光
2023-03-14

您可以以此为起点,进行修改以满足您的需要。这意味着您需要用InputSource对象加载文件,然后使用XPath从XML文件中提取数据。网上有很多关于如何做到这一点的例子和教程。下面的代码片段来自Java中查询XML的最简单方法

String xml = "<resp><status>good</status><msg>hi</msg></resp>";

XPathFactory xpathFactory = XPathFactory.newInstance();
XPath xpath = xpathFactory.newXPath();

InputSource source = new InputSource(new StringReader(
xml));
String status = xpath.evaluate("/resp/status", source);

System.out.println("satus=" + status);
 类似资料:
  • 问题内容: 我已经完成了将记录插入数据库的操作,但是我不知道如何检索它。我的代码是: Account.java: MyAccount.java: insert.html: web.xml: 当用户单击“检索”按钮时,如何从数据库检索数据,并以另一HTML格式显示所有记录?请提供有关操作方法的建议。 在我的应用程序中,当用户单击检索按钮时,它正在执行插入操作。但是我想要的是,当用户单击它时,应该转到

  • 本文向大家介绍SAP BI从Web服务检索PDF,包括了SAP BI从Web服务检索PDF的使用技巧和注意事项,需要的朋友参考一下 尝试使用REST SDK来检索文档并将其转换为PDF。请按照以下步骤操作: 登录:POST / biprws / logon / long 获取文档提示(如果有的话)GET / biprws / raylight / v1 / documents / 5690743

  • 问题内容: 我正在使用arzoo的Flight API。服务器必须在简单的POST请求中接收发布的数据。为此,我使用了PHP cURL。API文档中明确提到数据应以以下格式发送: 我在变量$ xml中使用了上面的代码。我的PHP cURL代码如下: 我没有得到任何回应。我已经与API Provider讨论过同样的问题,但是他们在日志中发现了空请求。我到底想念什么吗?您的答复将不胜感激。谢谢。 问题

  • 我想做的是从XHTML文件中提取一个简单的内部HTML。我已将搜索范围缩小到元素节点,但检索不到信息。 请注意:元素节点没有子节点。我为此收到空指针异常 这里是超文本标记语言SNIPPET 请注意,此文件的命名空间为http://www.w3.org/1999/xhtml 您可以看到我有想要的div元素。 这是我正在使用的代码 这就是我得到的结果 1 div dvTitle null 现在为什么我

  • 问题内容: 我想知道使用node.js消费SOAP XML Web服务的最佳方法是什么 谢谢! 问题答案: 您没有太多选择。 您可能需要使用以下之一: node-soap) strong-soap(重写) easysoap

  • 我只使用XML配置来创建MVCWeb应用程序(没有注释)。 现在我想用Spring创建一个RESTful web服务,但我找不到任何不使用注释的教程。 有没有办法只使用XML配置构建RESTful web服务 还是必须使用注释? 例如,您可以仅使用如下所示的XML配置来部署MVC模式的web应用程序。 然而,当我试图为URL映射一个方法时,我遇到了麻烦,例如HTTP方法:,URL:——这样我就可以