如何从XML文档中读取值并使用Selenium Java将其存储在变量中

时间:2017-08-18 04:45:21

标签: java selenium selenium-webdriver openscript

我是Selenium with Java的新手。

我有一个问题,我需要通过XML文件找到一个节点并读取该节点中的值。我需要将值与输入字符串进行比较。

有人可以帮我解释如何读取xml文件并从xml中获取值并将其存储在变量中。

这就是我在xml中所拥有的:

enter image description here

在Image 01中,我需要读取ChassisModuleOptionRequest partner_item=中的值并将值存储在数组中。

以下是我尝试的代码。

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

//Parsing of xml is done here
Document doc = builder.parse(new File("C:\\Users\\Satish_D1\\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("ChassisModuleOptionRequest");
int totalPartnerItem =list.getLength();
System.out.println("Total no of Partner Item : " + totalPartnerItem);         

//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("Partner Item : " + childNode.getTextContent());
 }

1 个答案:

答案 0 :(得分:0)

我们可以使用Java内置库来创建正则表达式模式,并在String中搜索该模式(文件中的数据)。以下代码可能会给你一些想法。

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);
  //Arraylist to store the values
  ArrayList<String> values = new ArrayList<>();
  //Change the pattern.
  Pattern pattern = Pattern.compile("<CChassisModuleOptionRequest partner_item=\"(.*)\">");    
  Matcher matcher = pattern.matcher(content);  

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

希望这会有所帮助。感谢。