org.w3c.dom.Document#getElementsByTagNameNS ( )源码实例Demo

下面列出了org.w3c.dom.Document#getElementsByTagNameNS ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

/**
 * Unmarshalls the provided artifact specific content.
 *
 * @param doc to unmarshall.
 * @return DataAssign object.
 */
private DataAssign unmarshall(final Document doc) {

    final NodeList nodeList =
        doc.getElementsByTagNameNS("http://www.siengine.restplugin.org/SpecificContentRestSchema", "DataAssign");

    final Node node = nodeList.item(0);
    try {
        final JAXBContext jc = JAXBContext.newInstance("org.opentosca.bus.management.plugins.rest.service.impl.model");
        final Unmarshaller unmarshaller = jc.createUnmarshaller();
        final DataAssign dataAssign = (DataAssign) unmarshaller.unmarshal(node);

        LOG.debug("Artifact specific content successfully unmarshalled.");
        return dataAssign;
    } catch (final JAXBException e) {
        LOG.warn("Couldn't unmarshall provided artifact specific content!");
        e.printStackTrace();
    }
    LOG.debug("No unmarshallable artifact specific content provided. Using default values now.");
    return null;
}
 
protected Map<String, DiagramNode> getElementBoundsFromBpmnDi(Document bpmnModel) {
    Map<String, DiagramNode> listOfBounds = new HashMap<>();
    // iterate over all DI shapes
    NodeList shapes = bpmnModel.getElementsByTagNameNS(BpmnParser.BPMN_DI_NS, "BPMNShape");
    for (int i = 0; i < shapes.getLength(); i++) {
        Element shape = (Element) shapes.item(i);
        String bpmnElementId = shape.getAttribute("bpmnElement");
        // get bounds of shape
        NodeList childNodes = shape.getChildNodes();
        for (int j = 0; j < childNodes.getLength(); j++) {
            Node childNode = childNodes.item(j);
            if (childNode instanceof Element && BpmnParser.BPMN_DC_NS.equals(childNode.getNamespaceURI()) && "Bounds".equals(childNode.getLocalName())) {
                DiagramNode bounds = parseBounds((Element) childNode);
                bounds.setId(bpmnElementId);
                listOfBounds.put(bpmnElementId, bounds);
                break;
            }
        }
    }
    return listOfBounds;
}
 
private static byte[] encrypt(Document doc, Crypto crypto, String detailId, String projectName) throws TechnicalConnectorException, TransformerException, UnsupportedEncodingException {
   NodeList nodes = doc.getElementsByTagNameNS("urn:be:cin:encrypted", "EncryptedKnownContent");
   String content = toStringOmittingXmlDeclaration(nodes);
   SignatureBuilder builder = SignatureBuilderFactory.getSignatureBuilder(AdvancedElectronicSignatureEnumeration.XAdES);
   Map<String, Object> options = new HashMap();
   List<String> tranforms = new ArrayList();
   tranforms.add("http://www.w3.org/2000/09/xmldsig#base64");
   tranforms.add("urn:nippin:xml:sig:transform:optional-deflate");
   options.put("transformerList", tranforms);
   options.put("baseURI", detailId);
   EncryptedKnownContent encryptedKnownContent = (EncryptedKnownContent)ConnectorXmlUtils.toObject(content.getBytes("UTF-8"), EncryptedKnownContent.class);
   encryptedKnownContent.getBusinessContent().setValue(ConnectorIOUtils.compress(encryptedKnownContent.getBusinessContent().getValue(), "deflate"));
   byte[] xades = builder.sign(Session.getInstance().getSession().getEncryptionCredential(), ConnectorXmlUtils.toByteArray((Object)encryptedKnownContent.getBusinessContent()), options);
   encryptedKnownContent.setXades(xades);
   return seal(crypto, ConnectorXmlUtils.toByteArray((Object)encryptedKnownContent), projectName);
}
 
源代码4 项目: neoscada   文件: RequestValidator.java
public Result validate ( final Document doc ) throws Exception
{
    final NodeList nl = doc.getElementsByTagNameNS ( XMLSignature.XMLNS, "Signature" ); //$NON-NLS-1$

    if ( nl.getLength () == 0 )
    {
        return new Result ( StatusCodes.VALIDATE_NO_SIGNATURE_DATA, "No signature data found" );
    }

    final DOMValidateContext dvc = new DOMValidateContext ( this.keySelector, nl.item ( 0 ) );

    final XMLSignature signature = this.factory.unmarshalXMLSignature ( dvc );

    try
    {
        final boolean result = signature.validate ( dvc );

        return new Result ( result, signature );
    }
    catch ( final XMLSignatureException e )
    {
        logger.debug ( "Failed to perform validation", e );
        return Result.INVALID;
    }
}
 
public static byte[] encrypt(Document doc, Crypto crypto, String detailId) throws TechnicalConnectorException, TransformerException, UnsupportedEncodingException {
   NodeList nodes = doc.getElementsByTagNameNS("urn:be:cin:encrypted", "EncryptedKnownContent");
   String content = toStringOmittingXmlDeclaration(nodes);
   SignatureBuilder builder = SignatureBuilderFactory.getSignatureBuilder(AdvancedElectronicSignatureEnumeration.XAdES);
   Map<String, Object> options = new HashMap();
   List<String> tranforms = new ArrayList();
   tranforms.add("http://www.w3.org/2000/09/xmldsig#base64");
   tranforms.add("http://www.w3.org/2001/10/xml-exc-c14n#");
   options.put("transformerList", tranforms);
   options.put("baseURI", detailId);
   options.put("encapsulate", true);
   options.put("encapsulate-transformer", new EncapsulationTransformer() {
      public Node transform(Node signature) {
         Element result = signature.getOwnerDocument().createElementNS("urn:be:cin:encrypted", "Xades");
         result.setTextContent(Base64.encodeBase64String(ConnectorXmlUtils.toByteArray(signature)));
         return result;
      }
   });
   byte[] encryptedKnowContent = builder.sign(Session.getInstance().getSession().getEncryptionCredential(), content.getBytes("UTF-8"), options);
   return seal(crypto, encryptedKnowContent);
}
 
源代码6 项目: io   文件: AbstractCase.java
/**
 * 名前空間を指定してDOMから要素を取得する.
 * @param doc Documentオブジェクト
 * @param name 取得する要素名
 * @param ns 名前空間名
 * @return 取得したNodeオブジェクト
 */
private Node getElementByTagNameNS(final Document doc, final String name, final String ns) {
    NodeList nl = doc.getElementsByTagNameNS(ns, name);
    if (nl.getLength() > 0) {
        return nl.item(0);
    } else {
        return null;
    }
}
 
源代码7 项目: java-client-api   文件: DocumentMetadataHandle.java
private void receivePermissionsImpl(Document document) {
  DocumentPermissions permissions = getPermissions();
  permissions.clear();

  if (document == null)
    return;

  NodeList permissionsIn = document.getElementsByTagNameNS(REST_API_NS, "permission");
  int permissionsInLength = permissionsIn.getLength();
  for (int i=0; i < permissionsInLength; i++) {
    String roleName = null;
    Set<Capability> caps = new HashSet<>();

    NodeList children = permissionsIn.item(i).getChildNodes();
    for (int j=0; j < children.getLength(); j++) {
      Node node = children.item(j);
      if (node.getNodeType() != Node.ELEMENT_NODE)
        continue;
      Element element = (Element) node;

      if ("role-name".equals(element.getLocalName()))
        roleName = element.getTextContent();
      else if ("capability".equals(element.getLocalName()))
        caps.add(Capability.getValueOf(element.getTextContent()));
      else if (logger.isWarnEnabled())
        logger.warn("Skipping unknown permission element", element.getTagName());
    }

    if (roleName == null || caps.size() == 0) {
      if (logger.isWarnEnabled())
        logger.warn("Could not parse permission");
      continue;
    }

    permissions.put(roleName, caps);
  }
}
 
源代码8 项目: google-cloud-eclipse   文件: PomTest.java
@Test
public void testRemoveUnusedDependencies_keepLibrary1()
    throws CoreException, ParserConfigurationException, IOException, SAXException {
  LibraryFile file1 = new LibraryFile(coordinates("com.example.group1", "artifact1"));
  LibraryFile file2 = new LibraryFile(coordinates("com.example.group2", "artifact2"));
  Library library1 = newLibrary("id1", file1);
  Library library2 = newLibrary("id2", file1, file2);

  pom.addDependencies(Arrays.asList(library1, library2));
  try (InputStream contents = pomFile.getContents()) {
    Document actual = parse(contents);
    NodeList dependenciesList = actual.getElementsByTagNameNS("http://maven.apache.org/POM/4.0.0", "dependencies");
    Assert.assertEquals(2, dependenciesList.getLength());
    Element dependencies = (Element) dependenciesList.item(1);
    Assert.assertEquals(2, dependencies.getElementsByTagNameNS("http://maven.apache.org/POM/4.0.0", "dependency").getLength());

    // dependencies from library2 should be removed
    Pom.removeUnusedDependencies(dependencies, Arrays.asList(library1),
        Arrays.asList(library1, library2));
    Assert.assertEquals(1, dependencies.getElementsByTagNameNS("http://maven.apache.org/POM/4.0.0", "dependency").getLength());
    Element dependency = getOnlyChild((dependencies), "dependency");
    Element groupId = getOnlyChild(dependency, "groupId");
    Assert.assertEquals("com.example.group1", groupId.getTextContent());
    Element artifactId = getOnlyChild(dependency, "artifactId");
    Assert.assertEquals("artifact1", artifactId.getTextContent());
  }
}
 
源代码9 项目: ttt   文件: Documents.java
public static List<Element> findElementsByName(Document d, QName qn) {
    String ns = qn.getNamespaceURI();
    NodeList nodes;
    if ((ns == null) || (ns.length() == 0))
        nodes = d.getElementsByTagName(qn.getLocalPart());
    else
        nodes = d.getElementsByTagNameNS(ns, qn.getLocalPart());
    List<Element> elts = new java.util.ArrayList<Element>();
    if (nodes != null) {
        for (int i = 0, n = nodes.getLength(); i < n; ++i) {
            elts.add((Element) nodes.item(i));
        }
    }
    return elts;
}
 
源代码10 项目: TencentKona-8   文件: ModelLoader.java
/**
 * Parses a set of schemas inside a WSDL file.
 *
 * A WSDL file may contain multiple &lt;xsd:schema> elements.
 */
private XSSchemaSet loadWSDL()
    throws SAXException {


    // build DOMForest just like we handle XML Schema
    DOMForest forest = buildDOMForest( new XMLSchemaInternalizationLogic() );

    DOMForestScanner scanner = new DOMForestScanner(forest);

    XSOMParser xsomParser = createXSOMParser( forest );

    // find <xsd:schema>s and parse them individually
    for( InputSource grammar : opt.getGrammars() ) {
        Document wsdlDom = forest.get( grammar.getSystemId() );
        if (wsdlDom == null) {
            String systemId = Options.normalizeSystemId(grammar.getSystemId());
            if (forest.get(systemId) != null) {
                grammar.setSystemId(systemId);
                wsdlDom = forest.get( grammar.getSystemId() );
            }
        }

        NodeList schemas = wsdlDom.getElementsByTagNameNS(XMLConstants.W3C_XML_SCHEMA_NS_URI,"schema");
        for( int i=0; i<schemas.getLength(); i++ )
            scanner.scan( (Element)schemas.item(i), xsomParser.getParserHandler() );
    }
    return xsomParser.getResult();
}
 
源代码11 项目: SAMLRaider   文件: XMLHelpers.java
/**
 * Returns the issuer of an SAML Message
 *
 * @param document
 *            Document which contains the issuer
 * @return Issuer of message / first Assertion if found, else empty string
 */
public String getIssuer(Document document) {
	NodeList nl = document.getElementsByTagNameNS("*", "Issuer");
	if (nl.getLength() > 0) {
		return nl.item(0).getTextContent();
	}
	return "";
}
 
源代码12 项目: java-client-api   文件: AlertingTest.java
@Test
public void testPostDocumentWithoutFormat() throws SAXException, IOException {
  StringHandle stringHandle = new StringHandle("<search xmlns=\"http://marklogic.com/appservices/search\"><qtext>true</qtext></search>");

  DOMHandle answer = ruleManager.match(stringHandle, new DOMHandle());

  Document doc = answer.get();
  NodeList nl = doc.getElementsByTagNameNS(
    "http://marklogic.com/rest-api", "name");
  assertEquals(2, nl.getLength());

}
 
源代码13 项目: teamengine   文件: SchematronValidatingParser.java
/**
 * Parses the parser element to get the schematron file location and type of
 * resource (from ctl file).
 * 
 * @param schema_links
 *            Gets the location of the schema (and type of resource) and
 *            saves to global parameter
 * @return The type of resource (URL, File, Resource)
 */
public String getFileType(Element schema_links) throws Exception {
    Document d = schema_links.getOwnerDocument();
    NodeList nodes = d.getElementsByTagNameNS(
            "http://www.occamlab.com/te/parsers", "schema");
    String localType = null;
    for (int i = 0; i < nodes.getLength(); i++) {
        Element e = (Element) nodes.item(i);
        localType = e.getAttribute("type");
        this.type = e.getAttribute("type");
        this.phase = e.getAttribute("phase");
        this.schemaLocation = e.getTextContent().trim();
    }
    return localType;
}
 
源代码14 项目: openjdk-jdk8u-backup   文件: TruncateHMAC.java
private static void validate(String data, boolean pass) throws Exception {
    System.out.println("Validating " + data);
    File file = new File(DIR, data);

    Document doc = dbf.newDocumentBuilder().parse(file);
    NodeList nl =
        doc.getElementsByTagNameNS(Constants.SignatureSpecNS, "Signature");
    if (nl.getLength() == 0) {
        throw new Exception("Couldn't find signature Element");
    }
    Element sigElement = (Element) nl.item(0);
    XMLSignature signature = new XMLSignature
        (sigElement, file.toURI().toString());
    SecretKey sk = signature.createSecretKey("secret".getBytes("ASCII"));
    try {
        System.out.println
            ("Validation status: " + signature.checkSignatureValue(sk));
        if (!pass) {
            System.out.println("FAILED");
            atLeastOneFailed = true;
        } else {
            System.out.println("PASSED");
        }
    } catch (XMLSignatureException xse) {
        System.out.println(xse.getMessage());
        if (!pass) {
            System.out.println("PASSED");
        } else {
            System.out.println("FAILED");
            atLeastOneFailed = true;
        }
    }
}
 
private boolean containsUnencryptedSignature(SAMLDocumentHolder documentHolder, boolean postBinding) {
    if (postBinding) {
        Document signedDoc = documentHolder.getSamlDocument();
        NodeList nl = signedDoc.getElementsByTagNameNS(XMLSignature.XMLNS, "Signature");
        return nl != null && nl.getLength() > 0;
    } else {
        String algorithm = facade.getRequest().getQueryParamValue(GeneralConstants.SAML_SIG_ALG_REQUEST_KEY);
        return algorithm != null;
    }
}
 
源代码16 项目: jdk8u-jdk   文件: SignatureValidator.java
boolean validate(String fn, KeySelector ks, URIDereferencer ud,
    boolean cache) throws Exception {

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    dbf.setNamespaceAware(true);
    dbf.setValidating(false);
    Document doc = dbf.newDocumentBuilder().parse(new File(dir, fn));
    NodeList nl =
        doc.getElementsByTagNameNS(XMLSignature.XMLNS, "Signature");
    if (nl.getLength() == 0) {
        throw new Exception("Couldn't find signature Element");
    }
    Element sigElement = (Element) nl.item(0);
    DOMValidateContext vc = new DOMValidateContext(ks, sigElement);
    vc.setBaseURI(dir.toURI().toString());
    if (cache) {
        vc.setProperty("javax.xml.crypto.dsig.cacheReference", Boolean.TRUE);
    }
    XMLSignatureFactory factory = XMLSignatureFactory.getInstance();
    XMLSignature signature = factory.unmarshalXMLSignature(vc);
    if (ud != null) {
        vc.setURIDereferencer(ud);
    }
    boolean coreValidity = signature.validate(vc);

    // Check reference cache
    if (cache) {
        Iterator i = signature.getSignedInfo().getReferences().iterator();
        for (int j=0; i.hasNext(); j++) {
            Reference ref = (Reference) i.next();
            if (!digestInputEqual(ref)) {
                throw new Exception
                    ("cached data for Reference[" + j + "] is not correct");
            }
            // check that dereferenced data does not contain comment nodes
            if (ref.getURI() == "") {
                System.out.println("checking deref data");
                NodeSetData data = (NodeSetData) ref.getDereferencedData();
                Iterator ni = data.iterator();
                while (ni.hasNext()) {
                    Node n = (Node) ni.next();
                    if (n.getNodeType() == Node.COMMENT_NODE) {
                        throw new Exception("dereferenced data for " +
                            " Reference[" + j + " contains comment node");
                    }
                }
            }
        }
    }
    return coreValidity;
}
 
源代码17 项目: openid4java   文件: XrdsParserImpl.java
public List parseXrds(String input, Set targetTypes) throws DiscoveryException
{
    if (DEBUG)
        _log.debug("Parsing XRDS input for service types: " + targetTypes.toString());

    Document document = parseXmlInput(input);

    NodeList XRDs = document.getElementsByTagNameNS(XRD_NS, XRD_ELEM_XRD);
    Node lastXRD;
    if (XRDs.getLength() < 1 || (lastXRD = XRDs.item(XRDs.getLength() - 1)) == null)
        throw new DiscoveryException("No XRD elements found.");

    // get the canonical ID, if any (needed for XRIs)
    String canonicalId = null;
    Node canonicalIdNode;
    NodeList canonicalIDs = document.getElementsByTagNameNS(XRD_NS, XRD_ELEM_CANONICALID);
    for (int i = 0; i < canonicalIDs.getLength(); i++) {
        canonicalIdNode = canonicalIDs.item(i);
        if (canonicalIdNode.getParentNode() != lastXRD) continue;
        if (canonicalId != null)
            throw new DiscoveryException("More than one Canonical ID found.");
        canonicalId = canonicalIdNode.getFirstChild() != null && canonicalIdNode.getFirstChild().getNodeType() == Node.TEXT_NODE ?
            canonicalIdNode.getFirstChild().getNodeValue() : null;
    }

    // extract the services that match the specified target types
    NodeList types = document.getElementsByTagNameNS(XRD_NS, XRD_ELEM_TYPE);
    Map serviceTypes = new HashMap();
    Set selectedServices = new HashSet();
    Node typeNode, serviceNode;
    for (int i = 0; i < types.getLength(); i++) {
        typeNode = types.item(i);
        String type = typeNode != null && typeNode.getFirstChild() != null && typeNode.getFirstChild().getNodeType() == Node.TEXT_NODE ?
            typeNode.getFirstChild().getNodeValue() : null;
        if (type == null) continue;

        serviceNode = typeNode.getParentNode();
        if (serviceNode.getParentNode() != lastXRD) continue;

        if (targetTypes.contains(type))
            selectedServices.add(serviceNode);
        addServiceType(serviceTypes, serviceNode, type);
    }

    if (DEBUG)
        _log.debug("Found " + serviceTypes.size() + " services for the requested types.");

    // extract local IDs
    Map serviceLocalIDs = extractElementsByParent(XRD_NS, XRD_ELEM_LOCALID, selectedServices, document);
    Map serviceDelegates = extractElementsByParent(OPENID_NS, OPENID_ELEM_DELEGATE, selectedServices, document);

    // build XrdsServiceEndpoints for all URIs in the found services
    List result = new ArrayList();
    NodeList uris = document.getElementsByTagNameNS(XRD_NS, XRD_ELEM_URI);
    Node uriNode;
    for (int i = 0; i < uris.getLength(); i++) {
        uriNode = uris.item(i);
        if (uriNode == null || !selectedServices.contains(uriNode.getParentNode())) continue;

        String uri = uriNode.getFirstChild() != null && uriNode.getFirstChild().getNodeType() == Node.TEXT_NODE ?
            uriNode.getFirstChild().getNodeValue() : null;

        serviceNode = uriNode.getParentNode();
        Set typeSet = (Set) serviceTypes.get(serviceNode);

        String localId = (String) serviceLocalIDs.get(serviceNode);
        String delegate = (String) serviceDelegates.get(serviceNode);

        XrdsServiceEndpoint endpoint = new XrdsServiceEndpoint(uri, typeSet, getPriority(serviceNode), getPriority(uriNode), localId, delegate, canonicalId);
        if (DEBUG)
            _log.debug("Discovered endpoint: \n" + endpoint);
        result.add(endpoint);
    }

    Collections.sort(result);
    return result;
}
 
源代码18 项目: openjdk-jdk9   文件: DOMUtils.java
public static Element getElement(Document parent, QName qname){
  NodeList children = parent.getElementsByTagNameNS(qname.getNamespaceURI(), qname.getLocalPart());
  if(children.getLength() >= 1)
    return (Element)children.item(0);
  return null;
}
 
源代码19 项目: openjdk-jdk9   文件: DocumentTest.java
@Test(dataProvider = "elementName")
public void testGetElementsByTagNameNS(String localName, int number) throws Exception {
    Document document = createDOMWithNS("DocumentTest01.xml");
    NodeList nodeList = document.getElementsByTagNameNS("urn:BooksAreUs.org:BookInfo", localName);
    assertEquals(nodeList.getLength(), number);
}
 
源代码20 项目: openjdk-8-source   文件: SignatureValidator.java
boolean validate(String fn, KeySelector ks, URIDereferencer ud,
    boolean cache) throws Exception {

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    dbf.setNamespaceAware(true);
    dbf.setValidating(false);
    Document doc = dbf.newDocumentBuilder().parse(new File(dir, fn));
    NodeList nl =
        doc.getElementsByTagNameNS(XMLSignature.XMLNS, "Signature");
    if (nl.getLength() == 0) {
        throw new Exception("Couldn't find signature Element");
    }
    Element sigElement = (Element) nl.item(0);
    DOMValidateContext vc = new DOMValidateContext(ks, sigElement);
    vc.setBaseURI(dir.toURI().toString());
    if (cache) {
        vc.setProperty("javax.xml.crypto.dsig.cacheReference", Boolean.TRUE);
    }
    XMLSignatureFactory factory = XMLSignatureFactory.getInstance();
    XMLSignature signature = factory.unmarshalXMLSignature(vc);
    if (ud != null) {
        vc.setURIDereferencer(ud);
    }
    boolean coreValidity = signature.validate(vc);

    // Check reference cache
    if (cache) {
        Iterator i = signature.getSignedInfo().getReferences().iterator();
        for (int j=0; i.hasNext(); j++) {
            Reference ref = (Reference) i.next();
            if (!digestInputEqual(ref)) {
                throw new Exception
                    ("cached data for Reference[" + j + "] is not correct");
            }
            // check that dereferenced data does not contain comment nodes
            if (ref.getURI() == "") {
                System.out.println("checking deref data");
                NodeSetData data = (NodeSetData) ref.getDereferencedData();
                Iterator ni = data.iterator();
                while (ni.hasNext()) {
                    Node n = (Node) ni.next();
                    if (n.getNodeType() == Node.COMMENT_NODE) {
                        throw new Exception("dereferenced data for " +
                            " Reference[" + j + " contains comment node");
                    }
                }
            }
        }
    }
    return coreValidity;
}