X-Git-Url: http://git.osdn.net/view?p=mikutoga%2FTogaGem.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fjp%2Fsourceforge%2Fmikutoga%2Fxml%2FDomNsUtils.java;h=91be3029c373966963e1979021a3e568ea9de338;hp=8e338b89a4b58eedcc8b5ab59909acefae370fc8;hb=26a7de90cc885bfa50bfb53523be1d31cf2f1440;hpb=21250dabe0bcb20203b8844fa20bb2b220e35636 diff --git a/src/main/java/jp/sourceforge/mikutoga/xml/DomNsUtils.java b/src/main/java/jp/sourceforge/mikutoga/xml/DomNsUtils.java index 8e338b8..91be302 100644 --- a/src/main/java/jp/sourceforge/mikutoga/xml/DomNsUtils.java +++ b/src/main/java/jp/sourceforge/mikutoga/xml/DomNsUtils.java @@ -47,18 +47,18 @@ public final class DomNsUtils { * @return ノードの名前空間およびローカル名が一致したらtrue */ public static boolean hasNsLocalNameNode(Node node, - String nsuri, - String localName ){ + String nsuri, + String localName ){ String nodeLocalName = node.getLocalName(); String nodeNsUri = node.getNamespaceURI(); - boolean needLocalCmp = - localName != null; - boolean needUriCmp = - nsuri != null && nodeNsUri != null; + if(localName != null){ + if( ! localName.equals(nodeLocalName) ) return false; + } - if(needLocalCmp && ! localName.equals(nodeLocalName) ) return false; - if(needUriCmp && ! nsuri.equals(nodeNsUri)) return false; + if(nsuri != null && nodeNsUri != null){ + if( ! nsuri.equals(nodeNsUri) ) return false; + } return true; } @@ -79,6 +79,28 @@ public final class DomNsUtils { } /** + * 親要素が指定された名前の子要素を持つか判定する。 + * @param parent 親要素 + * @param nsuri 名前空間URI + * @param localName ローカル名 + * @return 指定名の子要素が存在すればtrue + */ + public static boolean hasChild(Element parent, + String nsuri, + String localName ){ + for(Node node = parent.getFirstChild(); + node != null; + node = node.getNextSibling() ){ + + if(hasNsLocalNameElem(node, nsuri, localName)){ + return true; + } + } + + return false; + } + + /** * 指定された名前空間とローカル名に合致する最初の直下子要素を返す。 * @param parent 親要素 * @param nsuri 名前空間URI