2017-03-08 2 views
-1

저는 BaseX에서 xquery를 사용하여 원하는 형식으로 JMeter 테스트 케이스 (.jmx 파일)에서 정보를 검색하려고합니다. 이것은 내가 결과의 모습을 기대하는 것입니다XQuery - 단일 노드에서 요소의 시퀀스 묶음

<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> 
... 

:

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은 다음과 같습니다
이 (BaseX GUI 내부) 실제로 실행 해요 코드입니다

<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를 서식에 도움을 주셔서 감사합니다 거라고 감사

+0

실제 코드 앞에 나오는 예는 도움이되지 않습니다. 그것을 제거하고 당신이 원하는 출력과 실제 코드와 함께 출력을 보여줍니다. – wst

답변

0

첫 번째 레이블 안쪽에 for 루프를 배치하여 문제를 해결했습니다.