我是Selenium with Java的新手。
我有一个问题,我需要通过XML文件找到一个节点并读取该节点中的值。我需要将值与输入字符串进行比较。
有人可以帮我解释如何读取xml文件并从xml中获取值并将其存储在变量中。
这就是我在xml中所拥有的:
在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());
}
答案 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));
}
}
希望这会有所帮助。感谢。