如何将使用WebServices返回的XML解析为xQuery?

发布于 2024-11-03 02:22:17 字数 355 浏览 2 评论 0原文

我已经为这个问题苦苦挣扎了几天,衷心感谢您的帮助。我有一个 Java 应用程序,它查询多个返回 XML 消息的 Web 服务。然后,我的应用程序解析使用 xquery 返回的多个 XML 消息。根据我的理解,xquery 需要一个 XML 文档来读取 XML,对于我的 Java 应用程序来说,为返回的每个 Web 服务 XML 创建一个 XML 文档会很繁重,并且会减慢响应时间。

有没有什么方法可以将 Webservices 调用返回的 XML 字符串直接作为 xquery 的输入传递,而无需创建 XML 文档?来自单个源的 XML 是一致的,但 XML 结构在多个 Web 服务调用中是不同的,因此我需要一个非常灵活的应用程序处理框架。

先感谢您。 尼尔.

I have been struggling with this issue for a few days now and would sincerely appreciate your help . I have an Java application that queries multiple Webservices which return an XML message. My application then parses these multiple XML messages returned using xquery. Based on what i understand, xquery needs a XML document to read the XML and for my Java application creating a XML document for each Webservices XML returned would be heavy and slow down the response time.

Is there any way, that the XML string returned by the Webservices call can be passed directly as an input to xquery without creating the XML document? The XML from a single source is consistent but the XML structure is different in the multiple Webservices call so i need a very flexible application processing framework.

Thank you in advance.
Neil.

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

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

发布评论

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

评论(2

挖个坑埋了你 2024-11-10 02:22:17

String 是字符串,而 XQuery/XPath 需要一个带有命名空间、元素和属性的解析对象。这就是为什么需要解析。

你可以传递一个 InputSource 而不是 DOM,但我被告知它无论如何都会在后台构建一个 DOM。

String is string, while XQuery/XPath requires a parsed object with namespaces, elements and attributes. That's why parsing is required.

You may pass an InputSource instead of DOM, but I was told it builds a DOM under the hood anyway though.

心意如水 2024-11-10 02:22:17

有什么办法可以让 XML 字符串
由Webservices调用返回可以
直接作为输入传递给
xquery 无需创建 XML
文件?

不,XQuery 对 XML 文档进行操作。您可以将字符串传递给 XQuery 应用程序,它会被视为字符串,而不是 XML 文档。

例如

"<t name='Ann'/>"

可以使用任何接受字符串参数的函数进行处理,例如:string-length()substring()matches()tokenize()replace()、...等

但是,尝试将此字符串视为 XML 文档 - 例如尝试计算 XPath 表达式,例如:

/t/@name 

在此字符串上不可能,当然除非它被解析。

Is there any way, that the XML string
returned by the Webservices call can
be passed directly as an input to
xquery without creating the XML
document?

No, XQuery operates on XML document(s). You can pass a string to an XQuery application, and it is treated as string, not as XML document.

For example:

"<t name='Ann'/>"

can be processed with any function that accepts string argument(s), such as: string-length(), substring(), matches(), tokenize(), replace(), ..., etc.

However, trying to treat this string as XML document -- for example trying to evaluate an XPath expression like:

/t/@name 

is not possible on this string, unless of course it is parsed.

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