2017-06-16 1 views
1

Bin neu zur Automatisierung und benutzt Selenium mit Java.Wie man Wert aus XML Dokument holt und es in einer Variablen unter Verwendung Selenium Java speichert

Ich habe ein Problem, wo ich durch eine XML-Datei gehen muss einen Knoten finden und den Wert in diesem Knoten lesen. Und ich muss den Wert mit dem Input String vergleichen.

Kann mir bitte jemand helfen, wie man die XML-Datei liest und den Wert aus dem XML holt und in einer Variablen speichert.

<?xml version="1.0"?> 
-<cXML timestamp="2017-06-15T18:26:00.271+05:30" payloadID="7500610099-0-PORQ" version="1.2.011"> 
-<Header> 
+<From> 
+<To> 
+<Sender> 
</Header> 
-<Request deploymentMode="test"> 
-<OrderRequest> 
+<OrderRequestHeader type="new" orderType="release" orderDate="2017-06-15" orderID="7500610099-0"> 
+<ItemOut requestedDeliveryDate="2017-06-02" quantity="1" lineNumber="5"> 
+<ItemOut requestedDeliveryDate="2017-06-02" quantity="1" lineNumber="5"> 
+<ItemOut requestedDeliveryDate="2017-05-23" quantity="1" lineNumber="1"> 
+<ItemOut requestedDeliveryDate="2017-05-23" quantity="1" lineNumber="2"> 
-<ItemOut requestedDeliveryDate="2017-05-23" quantity="9" lineNumber="3"> 
-<ItemID> 
<SupplierPartID>1*VP470</SupplierPartID> 
</ItemID> 

Ich brauche den Wert innerhalb des Knotens <SupplierPartID>

Dank zu Lesen, Satish D

+0

ist dies eine separate XML-Datei, die Sie über normales Java von lokal lesen werden? –

+0

@santhoshkumar - Ja, das ist eine separate Datei und ich werde es vom freigegebenen Speicherort lesen. Aber jetzt nehmen wir an, ich habe diese Datei auf meinem Desktop und lese sie von lokal. – user3387482

+0

Warum möchten Sie Selen verwenden? Sie könnten das XML mit einem XML-Parser oder Xpath analysieren, um nur dieses Element auszuwählen. – metar

Antwort

0

Wir Java eingebaute Bibliotheken verwenden können, ein RegexMuster zu erstellen und für die im String (Daten abrufen in der Datei). Der folgende Code könnte Ihnen eine Idee geben.

public static void main(String[] args) throws FileNotFoundException 
{ 
    //Change the path for the file 
    String content = new Scanner(new File("/home/santhoshkumar/Desktop/sample.xml")).useDelimiter("\\Z").next(); 

    //System.out.println(content); 

    Pattern pattern = Pattern.compile("<SupplierPartID>(.*)</SupplierPartID>");  
    Matcher matcher = pattern.matcher(content); 

    while (matcher.find()) 
    {  
     System.out.println(matcher.group(1));  

    }  
} 

Hoffe, das hilft Ihnen. Danke

+0

Der folgende Code funktioniert wie ein Edelstein – user3387482

0

Der Below Code funktioniert wie ein Edelstein.

import javax.xml.parsers.DocumentBuilder; 
import javax.xml.parsers.DocumentBuilderFactory; 
import org.w3c.dom.Document; 
import org.w3c.dom.Element; 
import org.w3c.dom.Node; 
import org.w3c.dom.NodeList; 


DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
      DocumentBuilder builder = factory.newDocumentBuilder();     

      //Parsing of xml is done here 
      Document doc = builder.parse(new File("C:\\Users\\User_Name\\Documents\\My Received Files\\PDSL_ABM.xml")); 

      //Here we get the root element of XML and print out 
      doc.getDocumentElement().normalize(); 
      System.out.println ("Root element of the doc is " + doc.getDocumentElement().getNodeName()); 

      NodeList list = doc.getElementsByTagName("SupplierPartID"); 
      int totalSupplierPartID =list.getLength(); 
      System.out.println("Total no of SupplierPartID : " + totalSupplierPartID); 



      //Traversing all the elements from the list and printing out its data 
      for (int i = 0; i < list.getLength(); i++) { 

      //Getting one node from the list. 
      Node childNode = list.item(i); 
      System.out.println("SupplierPartID : " + childNode.getTextContent()); 
      } 
Verwandte Themen