如何为SOAP请求返回的XML.text输出添加逗号?
How to Add Commas to Your SOAP XML Response Text
Got it, let's work through this problem step by step. The main goal here is to avoid directly hacking the raw XML text (that's risky if your SOAP response structure ever changes) and instead parse the XML first, then format the data you need with commas.
Here are two straightforward approaches tailored to your existing jQuery setup:
Approach 1: Vanilla JS with DOMParser
Use the browser's built-in XML parser to convert the raw text into a manipulable DOM object:
$.ajax(settings).complete(function (response) { // Step 1: Turn the raw XML string into an XML document const parser = new DOMParser(); const xmlDoc = parser.parseFromString(response.responseText, "text/xml"); // Step 2: Target the elements inside the SOAP Body (update the selector to match your actual XML) // Handle the soapenv namespace with a fallback for cross-browser compatibility const targetElements = xmlDoc.querySelectorAll("soapenv\\:Body > your-element-tag, Body > your-element-tag"); // Step 3: Extract text from each element and join with commas const elementTexts = Array.from(targetElements).map(el => el.textContent.trim()); const commaSeparatedOutput = elementTexts.join(", "); console.log(commaSeparatedOutput); });
Approach 2: jQuery XML Parsing
Since you're already using jQuery, leverage its built-in XML handling for cleaner code:
$.ajax(settings).complete(function (response) { // Step 1: Parse the XML response directly with jQuery const $xml = $(response.responseText); // Step 2: Find your target elements in the SOAP Body (adjust the selector to your actual tags) const $targetElements = $xml.find("soapenv\\:Body your-element-tag, Body your-element-tag"); // Step 3: Pull text values and format with commas const commaSeparatedOutput = $targetElements .map(function() { return $(this).text().trim(); }) .get() .join(", "); console.log(commaSeparatedOutput); });
Key Tips:
- Replace
your-element-tagwith the actual tag name of the data you want to extract (e.g., if your SOAP Body contains<order-id>tags, useorder-id). - If your XML uses custom namespaces beyond
soapenv, use[localName='your-element-tag']in your selector to avoid namespace conflicts. - Skip regex replacements on raw XML text—XML can have variable whitespace or nested elements, and regex will break easily if the response structure shifts.
内容的提问来源于stack exchange,提问作者Uraforclain
相关产品推荐
相关产品推荐

