使用哪些框架来分析 REST 服务的响应?

发布于 2024-12-09 06:13:04 字数 628 浏览 1 评论 0原文

我正在使用 REST Web 服务来检索一些数据。作为响应,我得到一些长 xml 或其他文件。其中一部分可能如下所示:

<jfs:jauthRevokeTokenUrl
      rdf:resource="https://localhost:9443/jts/jauth-revoke-token" />

  <jfs:jauthCheckAuthUrl
      rdf:resource="https://localhost:9443/jts/jauth-check-auth" />

  <jfs:jauthProxyUrl
      rdf:resource="https://localhost:9443/jts/jauth-proxy" />

  <jfs:jauthSigninUrl
      rdf:resource="https://localhost:9443/jts/jauth-signin" />

如果我现在想要检索节点 jfs:jautSigningURLrdf:resource 的值,我可以使用什么 Java 框架用于这个?如果响应不是 xml 而是 json 怎么办?那我可以使用什么框架呢?还是我必须自己编写代码?

I'm using a REST webservice to retrieve some data. As a response I get some long xml or other files. Part of it could look for example like this:

<jfs:jauthRevokeTokenUrl
      rdf:resource="https://localhost:9443/jts/jauth-revoke-token" />

  <jfs:jauthCheckAuthUrl
      rdf:resource="https://localhost:9443/jts/jauth-check-auth" />

  <jfs:jauthProxyUrl
      rdf:resource="https://localhost:9443/jts/jauth-proxy" />

  <jfs:jauthSigninUrl
      rdf:resource="https://localhost:9443/jts/jauth-signin" />

If I now want to retrieve the value of rdf:resource of for example the node jfs:jautSigningURL, what Java framework can I use for this? And what if the response is not xml but json? What frameworks can I use then? Or do I have to code this by myself?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

蓝梦月影 2024-12-16 06:13:04

如果您想避免任何大型框架,您可以查看用于解析 XML 的 java 内置工具

这里有一个示例,假设您有一个 XML 字符串变量

 DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();

 DocumentBuilder db = documentBuilderFactory.newDocumentBuilder();
 InputStream inputStream = new ByteArrayInputStream(XML.getBytes());
 Document parsed = db.parse(inputStream);

 parsed.getDocumentElement().normalize();
 Node tag = parsed.getElementsByTagName("jfs:jauthSigninUrl").item(0);
 String value = tag.getAttributes().getNamedItem("rdf:resource").getNodeValue();

您可以通过包含命名空间定义来进一步完善它, null 检查并可能使用 XPath 表达式来简化它,如下所示

 XPath xpath = XPathFactory.newInstance().newXPath();
 String value = xpath.evaluate("//jauthSigninUrl/@resource", parsed); 

请参见此处 Java XML XPATH

If you want to avoid any big framework, you could look at the build in tools of java for parsing XML

Here an example, assuming you have an XML string variable

 DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();

 DocumentBuilder db = documentBuilderFactory.newDocumentBuilder();
 InputStream inputStream = new ByteArrayInputStream(XML.getBytes());
 Document parsed = db.parse(inputStream);

 parsed.getDocumentElement().normalize();
 Node tag = parsed.getElementsByTagName("jfs:jauthSigninUrl").item(0);
 String value = tag.getAttributes().getNamedItem("rdf:resource").getNodeValue();

You could further refine that by including namespace definitions, null checks and maybe simplifying it with an XPath expression, like so

 XPath xpath = XPathFactory.newInstance().newXPath();
 String value = xpath.evaluate("//jauthSigninUrl/@resource", parsed); 

See here Java XML XPATH

归途 2024-12-16 06:13:04

您可能需要考虑 Apache Tika,它可以帮助您读取和解析多种格式(包括但不限于 XML , json)..

这里 json 可以被视为纯文本文件并使用 Json 正确解析

you might want to consider Apache Tika, it can help you read and parse many formats (including but not limited to XML, json)..

here json can be treated as plain text file and parsed properly using Json

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文