
package automationFramework;
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.xml.sax.SAXException;
import org.w3c.dom.Document;
public class Xml_file {
static File fXmlFile=new File("C:\\test\\textConfig.xml");
static Document doc;
@BeforeClass
public static void start ()
{
}
@Test
public void insert_valus() throws Exception
{
setData("author",2, "Izik");
saveFile();
System.out.println(getData("author",2));
System.out.println(getNodesNumber("book"));
}
@AfterClass
public static void closetest()
{
}
public static String getData(String xmlFile,String nodeName,Integer indx) throws ParserConfigurationException, SAXException, IOException
{
File fXmlFile= new File(xmlFile);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder =dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
return doc.getElementsByTagName(nodeName).item(indx).getTextContent();
}
public static void setData(String xmlFile,String nodeName,Integer indx,String value) throws ParserConfigurationException, SAXException, IOException
{
File fXmlFile= new File(xmlFile);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder =dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
doc.getElementsByTagName(nodeName).item(indx).setTextContent(value);
}
public static int getNodeCount(String xmlFile,String nodeName) throws ParserConfigurationException, SAXException, IOException
{
File fXmlFile= new File(xmlFile);
int nodeCount=0;
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder =dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
return nodeCount=doc.getElementsByTagName(nodeName).getLength();
}
public static Document xmlElement() throws ParserConfigurationException, SAXException, IOException
{
// create the object of doc
DocumentBuilderFactory dbFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder=dbFactory.newDocumentBuilder();
doc=dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
return doc;
}
public static String getData(String nodeName,int nodeNumber ) throws ParserConfigurationException, SAXException, IOException
{
return doc.getElementsByTagName(nodeName).item(nodeNumber).getTextContent();
}
public static void setData(String nodeName,int nodeNumber ,String textContent ) throws ParserConfigurationException, SAXException, IOException, Exception
{
// set the content into xml file
doc = xmlElement();
doc.getElementsByTagName(nodeName).item(nodeNumber).setTextContent(textContent);
}
public int getNodesNumber(String nodeName) throws ParserConfigurationException, SAXException, IOException
{
doc = xmlElement();
int length = doc.getElementsByTagName(nodeName).getLength();
return length ;
}
public void saveFile () throws TransformerException
{
// save the content into xml file
// after set the content into xml file ---> setData()
TransformerFactory transformerFactory = TransformerFactory
.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(fXmlFile);
transformer.transform(source, result);
}
}