2010-10-08 3 views
11
<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><LoginResponse xmlns="http://tempuri.org/QuestIPhoneWebService/QuestIPhoneWebService"><LoginResult>&lt;RETURN_VALUE&gt;&lt;ERROR RESULT= '-1' DESC = 'The password entered into the system is not valid. Please check your password and try again.'/&gt;&lt;/RETURN_VALUE&gt;</LoginResult></LoginResponse></soap:Body></soap:Envelope> 

Bonjour, Je reçois la valeur de webservices. Je veux convertir ci-dessus chaîne xml Quelqu'un peut-il dire comment convertir chaîne en fichier xml en javaComment faire pour convertir la chaîne en fichier XML en Java

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
<soap:Body> 
<LoginResponse xmlns="http://tempuri.org/QuestIPhoneWebService/QuestIPhoneWebService"> 
<LoginResult> 
&lt;ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"&gt;&lt;LOGIN_DETAILS USER_ID="testpub2" COMPANY_ID="1" USER_NAME=" aaa" SYSTEM_USER_ID="6976" USER_EMAIL_ID="[email protected]" TOKEN_STRING="A93805F1F1C340F5A8155FDD9B77E595" DISCLAIMER_AGREED="1" USER_ENABLED="1" USER_COMPANY_ENABLED="1" USER_TYPE="2" LOGIN_EXPIRY_DAYS="999" TOKEN_CREATION_DATE="2010-10-01T16:04:26" MOBILE_ENABLED="1" USER_COMPANY_MOBILE_ENABLED="1"/&gt;&lt;COMPANY_DETAILS CLIENT_TYPE_ID="8"/&gt;&lt;USER_SETTINGS&gt;&lt;QUEST_GROUP ID="14293" NAME="World" ASSIGN_NUM="14"/&gt;&lt;INDEX_PROVIDER ID="14251" NAME="QUEST (Default)"/&gt;&lt;STOCK_IDENTIFIER ID="57" NAME="TICKER"/&gt;&lt;/USER_SETTINGS&gt;&lt;PERMISSIONS&gt;&lt;QUEST_FUNCTIONS&gt;&lt;FUNCTION NAME="charting" ID="501" ACCESS="1"/&gt;&lt;FUNCTION NAME="modeller" ID="512" ACCESS="1"/&gt;&lt;FUNCTION NAME="momentum" ID="513" ACCESS="1"/&gt;&lt;FUNCTION NAME="portfolio" ID="516" ACCESS="1"/&gt;&lt;FUNCTION NAME="search" ID="518" ACCESS="1"/&gt;&lt;FUNCTION NAME="sensitivity" ID="521" ACCESS="1"/&gt;&lt;FUNCTION NAME="statistics" ID="524" ACCESS="1"/&gt;&lt;FUNCTION NAME="strategy" ID="525" ACCESS="1"/&gt;&lt;FUNCTION NAME="summary" ID="526" ACCESS="1"/&gt;&lt;FUNCTION NAME="triangle" ID="528" ACCESS="1"/&gt;&lt;FUNCTION NAME="valuation" ID="529" ACCESS="1"/&gt;&lt;FUNCTION NAME="commentary" ID="530" ACCESS="1"/&gt;&lt;FUNCTION NAME="CITN" ID="534" ACCESS="1"/&gt;&lt;FUNCTION NAME="batch report" ID="553" ACCESS="1"/&gt;&lt;FUNCTION NAME="ModellerWS" ID="557" ACCESS="1"/&gt;&lt;FUNCTION NAME="Sector Analysis" ID="562" ACCESS="1"/&gt;&lt;/QUEST_FUNCTIONS&gt;&lt;ADMIN_FUNCTIONS&gt;&lt;FUNCTION NAME="administrator" ID="531" ACCESS="0"/&gt;&lt;FUNCTION NAME="author" ID="532" ACCESS="1"/&gt;&lt;FUNCTION NAME="publisher" ID="533" ACCESS="0"/&gt;&lt;FUNCTION NAME="editor" ID="539" ACCESS="0"/&gt;&lt;/ADMIN_FUNCTIONS&gt;&lt;/PERMISSIONS&gt;&lt;/ROOT&gt; 
10-04 14:30:08.696: DEBUG/login result is(439): </LoginResult></LoginResponse></soap:Body></soap:Envelope> 

le nœud enfant sont à venir comme celui-ci USER_ID = « testpub2 » Je dois convertir XNode et obtenir la valeur comment nœud xml caché? et prenez la valeur en utilisant saxparser. Est-ce que je peux prendre la valeur directement?

+0

Vous voulez écrire cette chaîne dans un fichier XML en utilisant java? – Nivas

+0

Hmm, "Comment écrire une chaîne dans un fichier Java" n'est pas très intéressant. Comment écrire uniquement le contenu du corps SOAP (le dans un fichier XML?) –

Répondre

32

Le code ci-dessous convertit une chaîne en un document XML. Une fois que vous avez le document, vous pouvez naviguer dans les noeuds ou vous pouvez écrire dans un fichier, etc.

import java.io.*; 
import javax.xml.parsers.*; 
import org.w3c.dom.*; 
import org.xml.sax.*; 

public class Util { 

    public static Document stringToDom(String xmlSource) 
      throws SAXException, ParserConfigurationException, IOException { 
     DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder builder = factory.newDocumentBuilder(); 
     return builder.parse(new InputSource(new StringReader(xmlSource))); 
    } 
} 
+0

mon noeud enfant arrive comme ceci USER_ID = "testpub2" Je dois convertir le format xml et prendre la valeur comment puis-je faire? – mohan

0
public void writeFile(String yourXML){ 
    BufferedWriter out = new BufferedWriter(new FileWriter("outfilename.xml")); 
    try { 
     out.write(yourXML); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } finally { 
     out.close(); 
    } 
} 
+0

Est-ce que ce "aString" ne devrait pas être votre XML? – Hobo

+2

Juste pour vous donner quelques retours sur ce que j'ai appris. ne pas invoquer la méthode close dans le bloc try Si une exception est levée, vous vous retrouvez avec un fichier ouvert, placez-le dans votre bloc finally comme finalement il est appelé même si une exception est levée –

+0

mon format de noeud ne s'affiche pas correctement USER_ID = "testpub2" je veux convertir le format xml et prendre la valeur – mohan

Questions connexes