selenium 数据驱动 (xml解析)
getElementByTagName()可以通过标签名获取某个标签。它所获取的对象是以数组形式存放。如“caption”和“item”标签在info.xml 文件中有多个,那么可以指定数组的下标在获取某个标签。
root.getElementsByTagName('caption') 获得的是标签为caption 一组标签;getElementsByTagName("p")[3]
item(0).getNodeName() 表示一组标签中的第一个。
item(2).getNodeName() 表示一组标签中的第三个。
getAttributes()方法可以获得元素的属性,getNamedItem()指定属性的名字。
getTextContent()方法用于获取标签对之前的数据。
HTML代码
<?xml version="1.0" encoding="UTF-8"?> <catalog> <maxid>4</maxid> <login username="pytest" passwd="123456"> <caption>Java</caption> <item id="4"> <caption>test</caption> </item> </login> <item id="2"> <caption>Zope</caption> </item> </catalog>
java代码一
1 package selenium.test; 2 import java.io.File; 3 import javax.xml.parsers.DocumentBuilder; 4 import javax.xml.parsers.DocumentBuilderFactory; 5 import org.w3c.dom.Document; 6 import org.w3c.dom.NodeList; 7 8 public class readXML { 9 public static void main(String[] args) { 10 try { 11 File xmlFile = new File("C:\Users\happy\Desktop\Domo.xml"); 12 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 13 DocumentBuilder builder = factory.newDocumentBuilder(); 14 Document doc = builder.parse(xmlFile); 15 NodeList ma = doc.getElementsByTagName("maxid"); 16 NodeList ca = doc.getElementsByTagName("caption"); 17 NodeList it = doc.getElementsByTagName("item"); 18 System.out.println(ma.item(0).getNodeName()); 19 System.out.println(ca.item(0).getNodeName()); 20 System.out.println(it.item(0).getNodeName()); 21 } catch (Exception e) { 22 e.printStackTrace(); 23 } 24 } 25 }
java代码二
1 1 package selenium.test; 2 2 3 3 import java.io.File; 4 4 import javax.xml.parsers.DocumentBuilder; 5 5 import javax.xml.parsers.DocumentBuilderFactory; 6 6 7 7 import org.python.constantine.platform.darwin.Sysconf; 8 8 import org.w3c.dom.Document; 9 9 import org.w3c.dom.NodeList; 10 10 11 11 public class readXML { 12 12 public static void main(String[] args) { 13 13 try { 14 14 File xmlFile = new File("C:\Users\happy\Desktop\Domo.xml"); 15 15 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 16 16 DocumentBuilder builder = factory.newDocumentBuilder(); 17 17 Document doc = builder.parse(xmlFile); 18 18 // 获取指定标签中元素/属性的值 19 19 NodeList login = doc.getElementsByTagName("login"); 20 20 System.out.println(login.item(0).getAttributes().getNamedItem("username")); 21 21 System.out.println(login.item(0).getAttributes().getNamedItem("passwd")); 22 22 NodeList ca = doc.getElementsByTagName("caption"); 23 23 // 获取标签中的文本内容 24 24 for (int i = 0; i < ca.getLength(); i++) { 25 25 System.out.println(ca.item(i).getTextContent()); 26 26 //循环获取caption标签中的文本内容 27 27 } 28 28 29 29 } catch (Exception e) { 30 30 e.printStackTrace(); 31 31 } 32 32 } 33 33 34 34 }