【问题标题】:XQuery - Enclosing sequence of elements under a single nodeXQuery - 在单个节点下包含元素序列
【发布时间】:2017-03-08 17:40:45
【问题描述】:

我正在使用带有 BaseX 的 xquery 来尝试以我想要的格式从 JMeter 测试用例(.jmx 文件)中检索信息。
这是我实际运行的代码(在 BaseX GUI 中):

let $rlist := db:list("JMeter")
for $resource in $rlist
let $rcontent := db:open("JMeter", $resource)
let $ret :=
  <HttpRequest>
  {
    for $item in $rcontent/jmeterTestPlan//HTTPSamplerProxy
    return
      (<method>
      {
        $item/stringProp[attribute()/string() = "HTTPSampler.method"]/text()
      }
      </method>,
      <path>
      {
        let $parse := $item/stringProp[attribute()/string() = "HTTPSampler.path"]/text()
        let $parse := fn:replace($parse, "\?[^/]*", "")
        let $parse := fn:replace($parse, "\$[^/]*", "\${}")
        let $parse := fn:replace($parse, "[0-9]+", "\${}")
        return $parse
      }
      </path>,
      <resource>
      {
        $resource
      }
      </resource>)
  }
  </HttpRequest>

return
<HttpRequests>
{
  $ret
}
</HttpRequests>

生成的 xml 如下所示:

<HttpRequests>
  <HttpRequest>
    <method>POST</method>
    <path>/config</path>
    <resource>CentralConfiguration/Requests/addConfiguration.jmx</resource>
  </HttpRequest>
</HttpRequests>
<HttpRequests>
  <HttpRequest>
    <method>POST</method>
    <path>/propertyType</path>
    <resource>CentralConfiguration/Requests/addPropertyType.jmx</resource>
  </HttpRequest>
</HttpRequests>
...

这是我期望的结果:

<HttpRequests>
  <HttpRequest>
    <method>POST</method>
    <path>/config</path>
    <resource>CentralConfiguration/Requests/addConfiguration.jmx</resource>
  </HttpRequest>
  <HttpRequest>
    <method>POST</method>
    <path>/propertyType</path>
    <resource>CentralConfiguration/Requests/addPropertyType.jmx</resource>
  </HttpRequest>
  ...
</HttpRequests>

非常感谢帮助我格式化我的 xquery 以获得预期结果,谢谢

【问题讨论】:

  • 实际代码之前的示例没有帮助。删除它并显示您使用实际代码获得的输出和您想要的输出。

标签: xquery basex


【解决方案1】:

通过将外部 for 循环放在第一个标签内解决了问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-21
    • 2019-02-04
    • 2014-03-09
    • 2013-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多