クライアント (ブラウザー) に 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>
この道を行くことになると思います。