0

クライアント (ブラウザー) に XML として応答を返す webapp (標準の Spring MVC、Java) - 私が書いたもの - があります。応答は、JAXB などを使用してマーシャリングされます。

UI 内 - サードパーティ ソフトウェアと対話するには、XML の一部をそのまま JavaScript メソッドに渡す必要があります。

つまり、thirdPartyStuff の '<' から最後のクロージング '>' までのすべてを抽出する必要があります。

何度も試み、多くのデバッグを行った結果、これは間違った方法であるという結論に達しました。応答のその部分をCDATAでラップし、それを.text()として抽出する必要があると思います...現在、jqueryを使用しています...応答はAJAX呼び出しで返されます...

しかし、おそらくそれは可能です..現在、要素で .html() を呼び出そうとしてつまずいています.XMLとして-ヒープに落ちます。

ティア。

:-)

以下は、「us」と「xml」の 3 番目の部分の応答構造アプリ データの種類です。" ... から " まで (& を含む) のみ - を抽出し、そのまま (テキスト文字列) をサード パーティのメソッドに渡す必要があります。

<xml>
  <someNode>
     <ourStuff veryUseful="true"/>
     <thirdPartyStuff a="1" b="2">
       <moreStuff/>
       <evenMoreStuff/>
     </thirdPartyStuff>
  </someNode>


</xml>

以下は失敗したテストであり、基本的に私の無知を示​​しています。したがって、もちろん、console.log は失敗する必要があります。

実際には、データは $.ajax() 呼び出しを介して返されますが、このテストは動作を示しています。「Uncaught TypeError: Cannot call method 'replace' of undefined」を生成します-XML「ノード」にinnerHtmlないため-もちろん、これは絶対に正しいと信じており、jquery APIドキュメントでそのように文書化されています。

- これは Windows の Chrome と IE では失敗しますが、Firefox (Mac OS) では機能します... :-|

 <html>

<head>
    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>

    <script type="text/javascript">

        function hackit() {
            var data = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" +
                    "<xml>" +
                    "<thirdParty>" +
                    "<blah a=\"0\" b=\"0\">" +
                    "</blah>" +
                    "</thirdParty>" +
                    "</xml>";

            $xmlData = $.parseXML(data);
            $data = $($xmlData);
            var thing = $data.find("thirdParty");

            console.log(thing.html());

        }
    </script>
</head>
<body onload="hackit()">

Loaded.

</body>
</html>

この道を行くことになると思います。

https://stackoverflow.com/a/14197860/366073

4

1 に答える 1