diff --git a/xml/XMLIO.java b/xml/XMLIO.java deleted file mode 100644 index 9599869..0000000 --- a/xml/XMLIO.java +++ /dev/null @@ -1,47 +0,0 @@ -package tools.xml; - -import org.w3c.dom.Document; -import org.xml.sax.SAXException; - -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.transform.TransformerException; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.stream.StreamResult; -import javax.xml.transform.dom.DOMSource; -import java.io.*; - -/** - * Created by IntelliJ IDEA. - * User: Igor - * Date: 18.12.2005 - * Time: 15:27:36 - * To change this template use File | Settings | File Templates. - */ -public class XMLIO -{ - public static Document newDocument() throws ParserConfigurationException - { - return DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); - } - - public static Document load(InputStream is) throws ParserConfigurationException, IOException, SAXException - { - return DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(is); - } - - public static Document load(String filename) throws ParserConfigurationException, IOException, SAXException - { - return DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File(filename)); - } - - public static void save(String filename, Document document) throws TransformerException, FileNotFoundException - { - save(new FileOutputStream(filename), document); - } - - public static void save(OutputStream out, Document document) throws TransformerException - { - TransformerFactory.newInstance().newTransformer().transform(new DOMSource(document), new StreamResult(out)); - } -} diff --git a/xml/XMLTools.java b/xml/XMLTools.java deleted file mode 100644 index 566c2b9..0000000 --- a/xml/XMLTools.java +++ /dev/null @@ -1,432 +0,0 @@ -package tools.xml; - -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.xpath.XPath; -import javax.xml.xpath.XPathExpression; - -import org.w3c.dom.CharacterData; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.w3c.dom.ls.DOMImplementationLS; -import org.w3c.dom.ls.LSSerializer; -import org.xml.sax.SAXException; - -import javax.xml.xpath.XPath; -import javax.xml.xpath.XPathConstants; -import javax.xml.xpath.XPathExpression; -import javax.xml.xpath.XPathExpressionException; -import javax.xml.xpath.XPathFactory; -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; - -/** - * Created by IntelliJ IDEA. - * User: Igor - * Date: 18.12.2005 - * Time: 15:26:59 - * To change this template use File | Settings | File Templates. - */ -public class XMLTools -{ - /** - * Вернуть значение первой попавшийся CDATA - * @return строка - */ - public static String getCDATAValue(Node node) - { - if(node==null) return ""; - NodeList items = node.getChildNodes(); - for (int i=0;i - * <element><childName/></element> - * @param parent - * @param childName - * @return Дочерный элемент либо null, если элементов с таким именем нет - */ - public static Element getChild(Element parent, String childName){ - NodeList nl = parent.getChildNodes(); - for (int i = 0; i node элементом (instanceOf {@link Element}) - * и имеет ли имя "tagname" - * @param node - * @param tagname - * @return - */ - public static boolean isElement(Node node, String tagname){ - return node instanceof Element && node.getNodeName().equals(tagname); - } - -<<<<<<<< HEAD:xmltools/XMLTools.java -======== - //вернуть первый попавшийся узел среди дочерних - public static Node getFirstNodeOnName(Node node,String nodename) - { - Node[] mas=new Node[50]; //depth - int pos=0; - mas[pos] = node.getFirstChild(); - while (mas[pos] != null) - { - if(mas[pos].getNodeName().equals(nodename)) - { - return mas[pos]; - } - if(mas[pos].getFirstChild()!=null) - { - pos++; - mas[pos]=mas[pos-1].getFirstChild(); - }else - { - //если не идёт дальше пытаемся подняться в верх по дереву - while (true) - { - mas[pos] = mas[pos].getNextSibling(); - if (mas[pos]==null) - { - if(pos>0){ pos--; }else{ break; } - }else - { - break; - } - } - } - } - return null; - } - - /** - * Return first from childs in first deep level on name - * @param node Find in - * @param nodename Name node - * @return node - */ - public static Node getNodeOnName(Node node,String nodename) - { - if(node==null) return null; - Node nextNode = node.getFirstChild(); - while(nextNode != null) - { - if(nextNode.getNodeName().equals(nodename)) return nextNode; - nextNode=nextNode.getNextSibling(); - } - return null; - } - - //Сериализовать узел в строку - public static String getOuterXML(Node node) - { - DOMImplementationLS domImplementation = (DOMImplementationLS) node.getOwnerDocument().getImplementation(); - LSSerializer lsSerializer = domImplementation.createLSSerializer(); - if (!(node instanceof Document)) - { - lsSerializer.getDomConfig().setParameter("xml-declaration", false); - } - return lsSerializer.writeToString(node); - } - ->>>>>>>> bd22e57cbce7dba632e6c46bb0e627e3b0f388f7:xml/XMLTools.java - /** Найти узел по атрибуту - */ - public static Node findNodeOnAttribute(Node node, String nodename, String attribute, String val) - { - if(node==null) return null; - NodeList items = node.getChildNodes(); - for (int i=0;i0){ pos--; }else{ break; } - }else - { - break; - } - } - } - } - return null; - } - - /** - * Return first from childs in first deep level on name - * @param node Find in - * @param nodename Name node - * @return node - */ - public static Node getNodeOnName(Node node,String nodename) - { - if(node==null) return null; - Node nextNode = node.getFirstChild(); - while(nextNode != null) - { - if(nextNode.getNodeName().equals(nodename)) return nextNode; - nextNode=nextNode.getNextSibling(); -======== - public static Node findFirstNodeOnAttribute(Node node, String nodename,String attribute,String val) - { - Node result=null; - if(node==null) return result; - javax.xml.xpath.XPathFactory xPathfactory = javax.xml.xpath.XPathFactory.newInstance(); - XPath xpath = xPathfactory.newXPath(); - XPathExpression expr=null; - Object exprResult=null; - try { - expr = xpath.compile("//*/"+nodename+"[@"+attribute+"='" + val + "']"); - exprResult = expr.evaluate(node, XPathConstants.NODESET); - } catch (XPathExpressionException ex) { - ->>>>>>>> bd22e57cbce7dba632e6c46bb0e627e3b0f388f7:xml/XMLTools.java - } - return null; - } - - //Сериализовать узел в строку - public static String getOuterXML(Node node) - { - DOMImplementationLS domImplementation = (DOMImplementationLS) node.getOwnerDocument().getImplementation(); - LSSerializer lsSerializer = domImplementation.createLSSerializer(); - if (!(node instanceof Document)) - { - lsSerializer.getDomConfig().setParameter("xml-declaration", false); - } - return lsSerializer.writeToString(node); - } - - /** - * Поиск среди текущего и дочерних узлов - * @param {Node} node Корневой узел - * @param {String} nodename Имя первого попавшегося узла - * @returns {undefined} - */ - public static Node findFirstNode(Node node, String nodename) - { - Node result=null; - if(node==null) return result; - javax.xml.xpath.XPathFactory xPathfactory = javax.xml.xpath.XPathFactory.newInstance(); - XPath xpath = xPathfactory.newXPath(); - XPathExpression expr=null; - Object exprResult=null; - try { - expr = xpath.compile("//*/"+nodename); - exprResult = expr.evaluate(node, XPathConstants.NODESET); - } catch (XPathExpressionException ex) { - - } - NodeList nodeList = (NodeList) exprResult; - if (nodeList.getLength() > 0) - result = nodeList.item(0); - return result; - } - - /** - * Найти узел по имени - * @param node - * @param nodename - * @return - */ - public static Node findFirstNode_v2(Node node, String nodename) - { - if(node==null || nodename==null) return null; - NodeList items = node.getChildNodes(); - for (int i=0;i>>>>>>> bd22e57cbce7dba632e6c46bb0e627e3b0f388f7:xml/XMLTools.java - /** Найти узел по атрибуту - */ - public static Node findNodeOnAttribute(Node node, String nodename, String attribute, String val) - { - if(node==null) return null; - NodeList items = node.getChildNodes(); - for (int i=0;i 0) - result = nodeList.item(0); - return result; - } - - /** - * Присвоить дочерние узлы первого дерева второму если их нет, иначе дополнить либо заменить. (Работает через рекурсию нужно для передачи параметров между окнами) - * @param {XML} first Узел где ханятся настройки - * @param {XML} second Узел к которому применяются настройки - * @param {String} name Имя атрибута по которому будут находиться одинаковые XML узлы - * @returns {undefined} - */ - public static void applyNodeToNode(Node first, Node second,String name) - { - if(first==null || second==null || name==null) return; - - //Если есть совпадающие узлы то передаём в рекурсию если нет то просто копируем - Node fn=first.getFirstChild(); - while (fn != null) - { - Node sn=null; - if(!fn.getNodeName().equals("#text") && !fn.getNodeName().equals("#cdata-section") && !fn.getNodeName().equals("#comment")) { //потому что для этих getAttribute вызывает ошибку - sn=findNodeOnAttribute(second,fn.getNodeName(),name,fn.getAttributes().getNamedItem(name).getNodeValue()); - } - - if(sn!=null) //Если по имени атрибуту совпали узлы - { - //Переписываем значения атрибутов из первого второму, если их нет то создаём. - for(int i=0;i