-2

別のルート ノードを持つ xml ファイルがあります。xml は動的に (オンザフライで) 作成されます。

ルートタグを知りたい。すなわち

*) ns:workflowInvoked

*) ns:invokingService

*)ns:sendingResult

xml チャンクごとに。

サンプル xml チャンクの一部を次に示します。チャンクを 3 つだけ貼り付けました。私は、すべて異なるルートタグを持つ、さらに多くの xml チャンクを持っています。ここでルートタグとは、つまり

*)ns:workflowInvoked *)ns:invokingService *)ns:sendingResult

それらを解析する必要があります。

   <ns:workflowInvoked 
    xmlns:ns="http://xxxxx/schemas/wft/2011/08" 
    infoModelVersion="2.6">
    <ns:notificationSource 
        ns:serviceID="Workflow1_cbc2c80b_511c_4a5b_9f88_fa789378296b" 
        ns:experimentID="Workflow1_cbc2c80b-511c-4a5b-9f88-fa789378296b" />
    <ns:timestamp>2013-07-26T23:45:37.654+05:30</ns:timestamp>
    <ns:description>echo=hi vija</ns:description><ns:annotation />
    <ns:initiator ns:serviceID="Workflow1_cbc2c80b_511c_4a5b_9f88_fa789378296b" />
</ns:workflowInvoked>


<ns:invokingService xmlns:ns="http://xxxxxx/schemas/wft/2011/08" infoModelVersion="2.6"><ns:notificationSource ns:serviceID="Workflow1_904264c9_1e41_419b_afa3_409b040dc472" ns:experimentID="Workflow1_904264c9-1e41-419b-afa3-409b040dc472" /><ns:timestamp>2013-07-23T03:21:44.295+05:30</ns:timestamp><ns:description>echo=nice work</ns:description><ns:annotation /><ns:request><ns:body><n1:greet xmlns:n1="http://samples.airavata.apache.org"><n1:echo>nice work</n1:echo></n1:greet></ns:body></ns:request><ns:receiver ns:serviceID="SimpleMathServicePortType_greet" ns:workflowID="Workflow1_904264c9_1e41_419b_afa3_409b040dc472" ns:workflowTimestep="0" ns:workflowNodeID="SimpleMathServicePortType_greet" />
</ns:invokingService>

<ns:sendingResult xmlns:ns="http://xxxxxx/schemas/wft/2011/08" infoModelVersion="2.6"><ns:notificationSource ns:serviceID="Workflow1_904264c9_1e41_419b_afa3_409b040dc472" ns:experimentID="Workflow1_904264c9-1e41-419b-afa3-409b040dc472" /><ns:timestamp>2013-07-23T03:21:49.041+05:30</ns:timestamp><ns:description /><ns:annotation /><ns:receiver ns:serviceID="Workflow1_904264c9_1e41_419b_afa3_409b040dc472" />
</ns:sendingResult>

私が試したこと

$xml に上記のxmlのいずれかが一度にある場合、使用してみました

 console.log($xml.find("*").eq(0)[0].nodeName);

しかし、これは私にo/pを与えます

* ns:通知ソース *

それで、私は試しました

    console.log($xml.find("*").eq(0).nodeName);
and 
console.log($xml.find("*").nodeName);

彼らは o/p を投げます

*未定義*

o/p 私が欲しいのは

ルートタグを印刷したい。

*) ns:workflowInvoked

*) ns:invokingService

*)ns:sendingResult

誰かが私が犯している間違いを指摘できますか. 私のコードは正しいようです。

4

2 に答える 2

0

こんにちは、グーグルで検索しました。Jqueryのドキュメントを調べました。

console.log($xml.filter('*').eq(0)[0].nodeName);

仕事をします。

于 2013-07-28T12:41:10.493 に答える