+
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
package tools.xml;
|
||||
package tools.xmltools;
|
||||
|
||||
import org.w3c.dom.Document;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package tools.xml;
|
||||
package tools.xmltools;
|
||||
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
import javax.xml.xpath.XPath;
|
||||
@ -87,8 +87,6 @@ public class XMLTools
|
||||
return node instanceof Element && node.getNodeName().equals(tagname);
|
||||
}
|
||||
|
||||
<<<<<<<< HEAD:xmltools/XMLTools.java
|
||||
========
|
||||
//вернуть первый попавшийся узел среди дочерних
|
||||
public static Node getFirstNodeOnName(Node node,String nodename)
|
||||
{
|
||||
@ -154,76 +152,6 @@ public class XMLTools
|
||||
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;i<items.getLength();i++)
|
||||
{
|
||||
Node n=items.item(i);
|
||||
if(n.getNodeName().equals(nodename))
|
||||
{
|
||||
NamedNodeMap nnm=n.getAttributes();
|
||||
if(nnm.getNamedItem(attribute).getNodeValue().equals(val)) return n;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
<<<<<<<< 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();
|
||||
========
|
||||
public static Node findFirstNodeOnAttribute(Node node, String nodename,String attribute,String val)
|
||||
{
|
||||
Node result=null;
|
||||
@ -236,23 +164,13 @@ public class XMLTools
|
||||
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);
|
||||
}
|
||||
}
|
||||
NodeList nodeList = (NodeList) exprResult;
|
||||
if (nodeList.getLength() > 0)
|
||||
result = nodeList.item(0);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Поиск среди текущего и дочерних узлов
|
||||
@ -300,10 +218,7 @@ public class XMLTools
|
||||
}
|
||||
return null;
|
||||
}
|
||||
<<<<<<<< HEAD:xmltools/XMLTools.java
|
||||
========
|
||||
|
||||
>>>>>>>> bd22e57cbce7dba632e6c46bb0e627e3b0f388f7:xml/XMLTools.java
|
||||
/** Найти узел по атрибуту
|
||||
*/
|
||||
public static Node findNodeOnAttribute(Node node, String nodename, String attribute, String val)
|
||||
@ -322,26 +237,6 @@ public class XMLTools
|
||||
return null;
|
||||
}
|
||||
|
||||
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) {
|
||||
|
||||
}
|
||||
NodeList nodeList = (NodeList) exprResult;
|
||||
if (nodeList.getLength() > 0)
|
||||
result = nodeList.item(0);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Присвоить дочерние узлы первого дерева второму если их нет, иначе дополнить либо заменить. (Работает через рекурсию нужно для передачи параметров между окнами)
|
||||
* @param {XML} first Узел где ханятся настройки
|
||||
|
||||
Reference in New Issue
Block a user