Example usage for org.w3c.dom Element getNodeName

List of usage examples for org.w3c.dom Element getNodeName

Introduction

In this page you can find the example usage for org.w3c.dom Element getNodeName.

Prototype

public String getNodeName();

Source Link

Document

The name of this node, depending on its type; see the table above.

Usage

From source file:com.bstek.dorado.view.config.XmlDocumentPreprocessor.java

private boolean processPlaceHolders(List<Element> elements, TemplateContext templateContext) throws Exception {
    boolean changed = false;
    List<Element> defaultContent = null;
    Element placeHolderStartElement = null;
    for (Element childElement : elements.toArray(new Element[0])) {
        String nodeName = childElement.getNodeName();
        if (XmlConstants.PLACE_HOLDER.equals(nodeName)) {
            List<Element> concreteContent = getPlaceHolderContent(childElement, templateContext);
            if (concreteContent != null) {
                childElement.setUserData("dorado.replace", concreteContent, null);
            }/*from w  w  w  . java  2 s  .c  o m*/
            childElement.setUserData("dorado.delete", concreteContent, null);
            changed = true;
        } else if (XmlConstants.PLACE_HOLDER_START.equals(nodeName)) {
            if (templateContext.isInPlaceHolderSection()) {
                throw new XmlParseException("Nesting <PlaceHolderStart> not supported.", childElement,
                        templateContext);
            } else {
                templateContext.setInPlaceHolderSection(true);
                defaultContent = new ArrayList<Element>();
                placeHolderStartElement = childElement;
            }
            changed = true;
        } else if (XmlConstants.PLACE_HOLDER_END.equals(nodeName)) {
            if (placeHolderStartElement == null) {
                throw new XmlParseException("<PlaceHolderStart> missed.", childElement, templateContext);
            } else {
                List<Element> placeHolderContent = getPlaceHolderContent(childElement, templateContext);
                if (placeHolderContent != null) {
                    placeHolderStartElement.setUserData("dorado.replace", placeHolderContent, null);
                    for (Element el : defaultContent) {
                        el.setUserData("dorado.delete", Boolean.TRUE, null);
                    }
                }
                placeHolderStartElement.setUserData("dorado.delete", Boolean.TRUE, null);
                childElement.setUserData("dorado.delete", Boolean.TRUE, null);

                templateContext.setInPlaceHolderSection(false);
                placeHolderStartElement = null;
                defaultContent = null;
            }
            changed = true;
        } else {
            processPlaceHolders(childElement, templateContext);
        }
    }
    return changed;
}

From source file:com.bstek.dorado.view.config.XmlDocumentPreprocessor.java

private void gothroughPlaceHolders(Document templateDocument, TemplateContext templateContext)
        throws Exception {
    Element templteViewElement = ViewConfigParserUtils.findViewElement(templateDocument.getDocumentElement(),
            templateContext.getResource());

    Document document = templateContext.getSourceDocument();
    Element viewElement = ViewConfigParserUtils.findViewElement(document.getDocumentElement(),
            templateContext.getSourceContext().getResource());

    NamedNodeMap attributes = viewElement.getAttributes();
    int len = attributes.getLength();
    for (int i = 0; i < len; i++) {
        Node item = attributes.item(i);
        String nodeName = item.getNodeName();
        if (!specialMergeProperties.contains(nodeName)) {
            templteViewElement.setAttribute(nodeName, item.getNodeValue());
        }/*from  w ww .java 2  s .  co m*/
    }

    List<Element> viewProperties = DomUtils.getChildrenByTagName(viewElement, XmlConstants.PROPERTY);
    for (Element propertyElement : viewProperties) {
        String propertyName = propertyElement.getAttribute(XmlConstants.ATTRIBUTE_NAME);
        if (!specialMergeProperties.contains(propertyName)) {
            Element clonedElement = (Element) templateDocument.importNode(propertyElement, true);
            templteViewElement.appendChild(clonedElement);
        }
    }

    mergeMetaData(templateDocument, templteViewElement, viewElement);
    mergeTemplateProperty(templteViewElement, viewElement, ViewXmlConstants.ATTRIBUTE_PACKAGES);
    mergeTemplateProperty(templteViewElement, viewElement, ViewXmlConstants.ATTRIBUTE_JAVASCRIPT_FILE);
    mergeTemplateProperty(templteViewElement, viewElement, ViewXmlConstants.ATTRIBUTE_STYLESHEET_FILE);

    for (Element element : DomUtils.getChildElements(viewElement)) {
        String nodeName = element.getNodeName();
        if (nodeName.equals(XmlConstants.PROPERTY) || nodeName.equals(XmlConstants.GROUP_START)
                || nodeName.equals(XmlConstants.GROUP_END) || nodeName.equals(XmlConstants.IMPORT)
                || nodeName.equals(XmlConstants.GROUP_END) || nodeName.equals(XmlConstants.PLACE_HOLDER_START)
                || nodeName.equals(XmlConstants.PLACE_HOLDER_END)) {
            continue;
        }
        if (componentTypeRegistry.getRegisterInfo(nodeName) == null) {
            Element clonedElement = (Element) templateDocument.importNode(element, true);
            templteViewElement.appendChild(clonedElement);
        }
    }

    processPlaceHolders(templteViewElement, templateContext);
}

From source file:com.microsoft.exchange.impl.ExchangeResponseUtilsImpl.java

private String parseInnerResponse(ResponseMessageType responseMessage) {
    StringBuilder responseBuilder = new StringBuilder("Response[");

    ResponseCodeType responseCode = responseMessage.getResponseCode();
    if (null != responseCode) {
        responseBuilder.append("code=" + responseCode + ", ");
    }/* w  ww .  j  av a 2  s . c  o m*/
    ResponseClassType responseClass = responseMessage.getResponseClass();
    if (null != responseClass) {
        responseBuilder.append("class=" + responseClass + ", ");
    }
    String messageText = responseMessage.getMessageText();
    if (StringUtils.isNotBlank(messageText)) {
        responseBuilder.append("txt=" + messageText + ", ");
    }
    MessageXml messageXml = responseMessage.getMessageXml();
    if (null != messageXml) {
        StringBuilder xmlStringBuilder = new StringBuilder("messageXml=");
        List<Element> anies = messageXml.getAnies();
        if (!CollectionUtils.isEmpty(anies)) {
            for (Element element : anies) {
                String elementNameString = element.getNodeName();
                String elementValueString = element.getNodeValue();
                xmlStringBuilder.append(elementNameString + "=" + elementValueString + ";");

                if (null != element.getAttributes()) {
                    NamedNodeMap attributes = element.getAttributes();
                    for (int i = 0; i < attributes.getLength(); i++) {
                        Node item = attributes.item(i);
                        String nodeName = item.getNodeName();
                        String nodeValue = item.getNodeValue();
                        xmlStringBuilder.append(nodeName + "=" + nodeValue + ",");
                    }
                }
            }
        }
        responseBuilder.append("xml=" + xmlStringBuilder.toString() + ", ");
    }
    Integer descriptiveLinkKey = responseMessage.getDescriptiveLinkKey();
    if (null != descriptiveLinkKey) {
        responseBuilder.append("link=" + descriptiveLinkKey);
    }

    responseBuilder.append("]");
    return responseBuilder.toString();
}

From source file:com.github.dozermapper.core.loader.xml.XMLParser.java

private void parseFieldMap(Element ele, DozerBuilder.FieldMappingBuilder fieldMapBuilder) {
    setRelationshipType(ele, fieldMapBuilder);

    if (StringUtils.isNotEmpty(getAttribute(ele, REMOVE_ORPHANS))) {
        fieldMapBuilder.removeOrphans(BooleanUtils.toBoolean(getAttribute(ele, REMOVE_ORPHANS)));
    }//from ww  w . j  av a  2s  . c  om

    NodeList nl = ele.getChildNodes();
    for (int i = 0; i < nl.getLength(); i++) {
        Node node = nl.item(i);
        if (node instanceof Element) {
            Element element = (Element) node;

            debugElement(element);

            parseFieldElements(element, fieldMapBuilder);
            if (SRC_TYPE_HINT_ELEMENT.equals(element.getNodeName())) {
                String hint = getNodeValue(element);
                fieldMapBuilder.srcHintContainer(hint);
            }
            if (DEST_TYPE_HINT_ELEMENT.equals(element.getNodeName())) {
                String hint = getNodeValue(element);
                fieldMapBuilder.destHintContainer(hint);
            }
            if (SRC_TYPE_DEEP_INDEX_HINT_ELEMENT.equals(element.getNodeName())) {
                String hint = getNodeValue(element);
                fieldMapBuilder.srcDeepIndexHintContainer(hint);
            }
            if (DEST_TYPE_DEEP_INDEX_HINT_ELEMENT.equals(element.getNodeName())) {
                String hint = getNodeValue(element);
                fieldMapBuilder.destDeepIndexHintContainer(hint);
            }
        }
    }
}

From source file:eu.europa.esig.dss.xades.signature.XAdESBuilder.java

/**
 * This method creates the ds:DigestValue DOM object.
 *
 * @param parentDom/* ww w . jav  a2 s.c o  m*/
 * @param digestAlgorithm  digest algorithm
 * @param originalDocument to digest array of bytes
 */
protected void incorporateDigestValue(final Element parentDom, final DigestAlgorithm digestAlgorithm,
        final DSSDocument originalDocument) {

    // <ds:DigestValue>b/JEDQH2S1Nfe4Z3GSVtObN34aVB1kMrEbVQZswThfQ=</ds:DigestValue>
    final Element digestValueDom = documentDom.createElementNS(XMLNS, DS_DIGEST_VALUE);
    final String base64EncodedDigestBytes = originalDocument.getDigest(digestAlgorithm);
    if (LOG.isTraceEnabled()) {
        LOG.trace("Digest value {} --> {}", parentDom.getNodeName(), base64EncodedDigestBytes);
    }
    final Text textNode = documentDom.createTextNode(base64EncodedDigestBytes);
    digestValueDom.appendChild(textNode);
    parentDom.appendChild(digestValueDom);
}

From source file:com.github.dozermapper.core.loader.xml.XMLParser.java

private void parseConfiguration(Element ele, DozerBuilder builder) {
    DozerBuilder.ConfigurationBuilder configBuilder = builder.configuration();
    NodeList nl = ele.getChildNodes();
    for (int i = 0; i < nl.getLength(); i++) {
        Node node = nl.item(i);//from  w  w  w  .  ja v a  2s.  co  m
        if (node instanceof Element) {
            Element element = (Element) node;

            debugElement(element);

            final String nodeValue = getNodeValue(element);

            if (STOP_ON_ERRORS_ELEMENT.equals(element.getNodeName())) {
                configBuilder.stopOnErrors(Boolean.valueOf(nodeValue));
            } else if (DATE_FORMAT.equals(element.getNodeName())) {
                configBuilder.dateFormat(nodeValue);
            } else if (WILDCARD.equals(element.getNodeName())) {
                configBuilder.wildcard(Boolean.valueOf(nodeValue));
            } else if (WILDCARD_CASE_INSENSITIVE.equals(element.getNodeName())) {
                configBuilder.wildcardCaseInsensitive(Boolean.valueOf(nodeValue));
            } else if (TRIM_STRINGS.equals(element.getNodeName())) {
                configBuilder.trimStrings(Boolean.valueOf(nodeValue));
            } else if (MAP_NULL.equals(element.getNodeName())) {
                configBuilder.mapNull(Boolean.valueOf(nodeValue));
            } else if (MAP_EMPTY_STRING.equals(element.getNodeName())) {
                configBuilder.mapEmptyString(Boolean.valueOf(nodeValue));
            } else if (RELATIONSHIP_TYPE.equals(element.getNodeName())) {
                RelationshipType relationshipType = RelationshipType.valueOf(nodeValue);
                configBuilder.relationshipType(relationshipType);
            } else if (BEAN_FACTORY.equals(element.getNodeName())) {
                configBuilder.beanFactory(nodeValue);
            } else if (CUSTOM_CONVERTERS_ELEMENT.equals(element.getNodeName())) {
                parseCustomConverters(element, configBuilder);
            } else if (COPY_BY_REFERENCES_ELEMENT.equals(element.getNodeName())) {
                parseCopyByReferences(element, configBuilder);
            } else if (ALLOWED_EXCEPTIONS_ELEMENT.equals(element.getNodeName())) {
                parseAllowedExceptions(element, configBuilder);
            } else if (VARIABLES_ELEMENT.equals(element.getNodeName())) {
                parseVariables(element);
            }
        }
    }
}

From source file:it.ciroppina.idol.generic.tunnel.IdolOEMTunnel.java

/**
 * Method that returns a List<Map> where every map contains hit's fields 
 *  and the autn:content text, BUT it do not contains <DOCUMENT> structure !
 *  <br/>/*from w w w .jav  a  2  s  . c  om*/
 *  Notice that: this method M^UST be invoked only for a print=indexText query !
 *  
 * @return ArrayList<Hit> list of Hit, each containing a Map (of dreFields)
 * 
 */
@WebMethod(operationName = "getQueryHitsNoDocumentMap")
public ArrayList<Hit> getQueryHitsNoDocumentMap(String xml) {
    ArrayList<Hit> result = new ArrayList<Hit>();
    Document document = getDocumentFrom(xml);

    NodeList temp = null;
    temp = document.getElementsByTagName("response");
    String response = (temp.getLength() > 0)
            ? document.getElementsByTagName("response").item(0).getTextContent()
            : "FAILURE";
    temp = document.getElementsByTagName("autn:numhits");
    String numHits = (temp.getLength() > 0)
            ? document.getElementsByTagName("autn:numhits").item(0).getTextContent()
            : "0";
    temp = document.getElementsByTagName("autn:totalhits");
    String totalHits = (temp.getLength() > 0)
            ? document.getElementsByTagName("autn:totalhits").item(0).getTextContent()
            : "0";

    NodeList hits = document.getElementsByTagName("autn:hit");

    for (int i = 0; i < hits.getLength(); i++) {
        HashMap<String, String> map = new HashMap<String, String>();
        Node nodo = hits.item(i);
        NodeList hitChilds = nodo.getChildNodes();

        for (int j = 0; j < hitChilds.getLength(); j++) {
            Node n = hitChilds.item(j);
            if (n.getNodeType() == Node.ELEMENT_NODE) {
                Element e2 = (Element) n;
                if (!e2.getNodeName().equals("autn:content")) {
                    String value = "";
                    if (map.containsKey(e2.getNodeName())) {
                        value = map.get(e2.getNodeName()) + "," + e2.getTextContent();
                        map.put(e2.getNodeName(), value);
                    } else {
                        map.put(e2.getNodeName(), e2.getTextContent());
                    }

                } else {
                    if (e2.getNodeType() == Node.ELEMENT_NODE) {
                        String nodeValue = e2.getFirstChild().getTextContent();
                        //Element el = (Element) content;
                        String value = "";
                        if (map.containsKey(e2.getNodeName())) {
                            value = map.get(e2.getNodeName()) + "," + nodeValue;
                            map.put(e2.getNodeName(), value);
                        } else {
                            map.put(e2.getNodeName(), nodeValue);
                        }
                    }
                }
            }
        }
        Hit hit = new Hit(map);
        hit.getDreFields().put("response", response);
        hit.getDreFields().put("numhits", numHits);
        hit.getDreFields().put("totalhits", totalHits);

        result.add(hit);
    }
    return result;
}

From source file:importer.handler.post.stages.Splitter.java

/**
 * Rule 1 states that the versions of every element are also 
 * present in its parents, up to the root.
 * @param elem the element to start from
 *//*  ww  w. j a  v  a  2s  .c  o m*/
void verifyRule1(Element elem) {
    String pVers = elem.getAttribute(VERSIONS);
    Node child = elem.getFirstChild();
    // descend depth-first
    while (child != null) {
        if (child.getNodeType() == Node.ELEMENT_NODE) {
            String cVers = ((Element) child).getAttribute(VERSIONS);
            if (cVers != null && pVers != null) {
                if (!verifyMembership(pVers, cVers))
                    System.out.println("Rule 1 broken for element " + elem.getNodeName() + " with child "
                            + child.getNodeName() + ": \"" + cVers + "\" not contained in \"" + pVers + "\"");
                // recurse
                verifyRule1((Element) child);
            } else
                System.out.println("Missing parent (" + pVers + ") or child versions (" + cVers + ")");
        }
        child = child.getNextSibling();
    }
}

From source file:it.ciroppina.idol.generic.tunnel.IdolOEMTunnel.java

/**
 * Method return List<Map> when every map contains hit fields 
 * //from w w w.  j  a v a2  s  . c  o m
 * @return ArrayList<Hit> list of Hit, each containing a Map (of dreFileds)
 * 
 */
@WebMethod(operationName = "getQueryHitsMap")
public ArrayList<Hit> getQueryHitsMap(String xml) {
    ArrayList<Hit> result = new ArrayList<Hit>();
    Document document = getDocumentFrom(xml);

    NodeList temp = null;
    temp = document.getElementsByTagName("response");
    String response = (temp.getLength() > 0)
            ? document.getElementsByTagName("response").item(0).getTextContent()
            : "FAILURE";
    temp = document.getElementsByTagName("autn:numhits");
    String numHits = (temp.getLength() > 0)
            ? document.getElementsByTagName("autn:numhits").item(0).getTextContent()
            : "0";
    temp = document.getElementsByTagName("autn:totalhits");
    String totalHits = (temp.getLength() > 0)
            ? document.getElementsByTagName("autn:totalhits").item(0).getTextContent()
            : "0";

    NodeList hits = document.getElementsByTagName("autn:hit");
    //ERROR case detection
    if (hits.getLength() < 1 && response.toUpperCase().contains("ERROR")) {
        ErrorResponse er = new ErrorResponse(document);
        result.add(er);
        return result;
    }

    for (int i = 0; i < hits.getLength(); i++) {
        HashMap<String, String> map = new HashMap<String, String>();
        Node nodo = hits.item(i);
        NodeList hitChilds = nodo.getChildNodes();

        for (int j = 0; j < hitChilds.getLength(); j++) {
            Node n = hitChilds.item(j);
            if (n.getNodeType() == Node.ELEMENT_NODE) {
                Element e2 = (Element) n;
                if (!e2.getNodeName().equals("autn:content")) {
                    String value = "";
                    if (map.containsKey(e2.getNodeName())) {
                        value = map.get(e2.getNodeName()) + "," + e2.getTextContent();
                        map.put(e2.getNodeName(), value);
                    } else {
                        map.put(e2.getNodeName(), e2.getTextContent());
                    }

                } else {
                    NodeList content = e2.getElementsByTagName("DOCUMENT").item(0).getChildNodes();

                    for (int z = 0; z < content.getLength(); z++) {
                        Node d = content.item(z);
                        if (d.getNodeType() == Node.ELEMENT_NODE) {
                            Element el = (Element) d;
                            String value = "";
                            if (map.containsKey(el.getNodeName())) {
                                value = map.get(el.getNodeName()) + "," + el.getTextContent();
                                map.put(el.getNodeName(), value);
                            } else {
                                map.put(el.getNodeName(), el.getTextContent());
                            }
                        }
                    }
                }
            }
        }
        Hit hit = new Hit(map);
        hit.getDreFields().put("response", response);
        hit.getDreFields().put("numhits", numHits);
        hit.getDreFields().put("totalhits", totalHits);

        result.add(hit);
    }
    return result;
}

From source file:com.streamsets.pipeline.stage.processor.xmlflattener.XMLFlatteningProcessor.java

@Override
public void process(Record record, SingleLaneBatchMaker singleLaneBatchMaker) throws StageException {
    if (keepExistingFields && !record.get().getType().isOneOf(Field.Type.MAP, Field.Type.LIST_MAP)) {
        String errorValue;//from  w w  w.j  a  v  a2  s .  c  o  m
        if (record.get().getType() == Field.Type.LIST) {
            errorValue = record.get().getValueAsList().toString();
        } else {
            errorValue = record.get().toString();
        }
        throw new OnRecordErrorException(CommonError.CMN_0100, record.get().getType().toString(), errorValue,
                record.toString());
    }

    Field original = record.get(fieldPath);
    String xmlData = null;
    if (original != null) {
        try {
            if (original.getType() != Field.Type.STRING) {
                throw new OnRecordErrorException(CommonError.CMN_0100, original.getType().toString(),
                        original.getValue().toString(), record.toString());
            }

            xmlData = record.get(fieldPath).getValueAsString().trim();
            Document doc = factory.newDocumentBuilder().parse(new ByteArrayInputStream(xmlData.getBytes()));
            doc.getDocumentElement().normalize();
            Element root = doc.getDocumentElement();
            // If we are have a delimiter we are in a record, so just add everything as fields.
            boolean currentlyInRecord = false;
            Record newR = null;
            String prefix = null;
            List<Record> results = new LinkedList<>();
            if (recordDelimiter == null || recordDelimiter.isEmpty()
                    || root.getNodeName().equals(recordDelimiter)) {
                currentlyInRecord = true;
                //Increment record count.
                flattenerPerRecordCount++;
                if (keepExistingFields) {
                    newR = getContext().cloneRecord(record, String.valueOf(flattenerPerRecordCount));
                } else {
                    newR = getContext().createRecord(record, String.valueOf(flattenerPerRecordCount));
                    newR.set(Field.create(new HashMap<String, Field>()));
                }
                ensureOutputFieldExists(newR);
                prefix = root.getTagName();
                addAttrs(newR, root, prefix);
                results.add(newR);
            }
            processXML(newR, currentlyInRecord, new XMLNode(root, prefix), results, record);
            for (Record result : results) {
                singleLaneBatchMaker.addRecord(result);
            }
        } catch (OnRecordErrorException ex) {
            errorRecordHandler.onError(new OnRecordErrorException(record, ex.getErrorCode(), ex.getParams()));
        } catch (Exception ex) {
            errorRecordHandler
                    .onError(new OnRecordErrorException(record, DataFormatErrors.DATA_FORMAT_303, xmlData, ex));
        } finally {
            //Reset record count
            flattenerPerRecordCount = 0;
        }
    }
}