Xpath 使用 Spring DSL 查找 XML 的根目录
Xpath to find the root of the XML using Spring DSL
我正在使用 Spring DSL 来访问网络服务器,就像这样,
<route>
<!-- 1 -->
<from uri="...">
<!-- 2 -->
<to uri="...">
<!-- 3 -->
<choice>
<when>
<xpath></xpath>
<to uri="...">
</when>
<when>
<xpath></xpath>
<to uri="...">
</when>
</choice>
</route>
<!-- 1 -->
当 Endpoint 命中时,
<!-- 2 -->
向网络服务器发送请求,<!-- 3 -->
检查作为响应从网络服务器收到的根元素,基于该响应XML 将发送到另一个端点
Web 服务器将 return 2 XML 消息中的任何一个,例如,
<tns:roottag xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance xmlns:tns="http://example.com">
<tns:leaftag>
information
</tns:leaftag>
</tns:roottag>
或
<tns:Parenttag xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance xmlns:tns="http://example.com">
<tns:Childtag>
information
</tns:Childtag>
</tns:parenttag>
从网络服务器收到 XML 后,需要根据收到的 XML、
执行不同的操作来检查根目录
看了一些网站,才知道spring DSL中的XPath
可以用于条件,
我的问题:
1. 仅从响应 XML 中检索根标签名称(如下所示),并检查基于对原始响应 XML
执行不同操作的 XPath
tns:Parenttag xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance xmlns:tns="http://example.com" ==> Parenttag
或
tns:roottag xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance xmlns:tns="http://example.com" ==> roottag
只有当顶级元素是 <tns:roottag>
:
时才会匹配
<xpath>/tns:roottag</xpath>
只有当顶级元素是 <tns:Parenttag>
:
时才会匹配
<xpath>/tns:Parenttag</xpath>
但是,在此之前,您需要声明 tns
前缀。您可以在 <beans>
顶部元素上执行此操作:
<beans
xmlns="http://www.springframework.org/schema/beans"
...other namespace declarations...
xmlns:tns="http://example.com"
>
确保命名空间 URI 与 XML 响应中的 URI 匹配。
我正在使用 Spring DSL 来访问网络服务器,就像这样,
<route>
<!-- 1 -->
<from uri="...">
<!-- 2 -->
<to uri="...">
<!-- 3 -->
<choice>
<when>
<xpath></xpath>
<to uri="...">
</when>
<when>
<xpath></xpath>
<to uri="...">
</when>
</choice>
</route>
<!-- 1 -->
当 Endpoint 命中时,
<!-- 2 -->
向网络服务器发送请求,<!-- 3 -->
检查作为响应从网络服务器收到的根元素,基于该响应XML 将发送到另一个端点
Web 服务器将 return 2 XML 消息中的任何一个,例如,
<tns:roottag xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance xmlns:tns="http://example.com">
<tns:leaftag>
information
</tns:leaftag>
</tns:roottag>
或
<tns:Parenttag xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance xmlns:tns="http://example.com">
<tns:Childtag>
information
</tns:Childtag>
</tns:parenttag>
从网络服务器收到 XML 后,需要根据收到的 XML、
执行不同的操作来检查根目录看了一些网站,才知道spring DSL中的XPath
可以用于条件,
我的问题: 1. 仅从响应 XML 中检索根标签名称(如下所示),并检查基于对原始响应 XML
执行不同操作的 XPathtns:Parenttag xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance xmlns:tns="http://example.com" ==> Parenttag
或
tns:roottag xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance xmlns:tns="http://example.com" ==> roottag
只有当顶级元素是 <tns:roottag>
:
<xpath>/tns:roottag</xpath>
只有当顶级元素是 <tns:Parenttag>
:
<xpath>/tns:Parenttag</xpath>
但是,在此之前,您需要声明 tns
前缀。您可以在 <beans>
顶部元素上执行此操作:
<beans
xmlns="http://www.springframework.org/schema/beans"
...other namespace declarations...
xmlns:tns="http://example.com"
>
确保命名空间 URI 与 XML 响应中的 URI 匹配。