本文整理了Java中org.n52.security.common.xml.XMLPath
类的一些代码示例,展示了XMLPath
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。XMLPath
类的具体详情如下:
包路径:org.n52.security.common.xml.XMLPath
类名称:XMLPath
[英]Represents an XPath and its evaluation.
You create a "source" XMLPath by using the XMLPathCtx#findIn methods. From there you can use the
Sample (finds a root node of a document):
XMLPathCtx ctx = XMLPathCtx.createNew()
.addNamespace("t", "http://tempuri.org/test");
Node result = ctx.findIn(document).node("/*").get();
[中]表示XPath及其求值。
您可以使用XMLPathCtx#findIn方法创建一个“源”XMLPath。从那里你可以使用
*#节点(字符串)
*#全部(字符串)
*#布尔(弦)
*#编号(字符串)
*#文本(字符串)
方法来构建一个完整的xpath。创建完整的xpath后,可以调用每个具体XMLPath实例的get()方法,以获取查询结果。
示例(查找文档的根节点):
XMLPathCtx ctx = XMLPathCtx.createNew()
.addNamespace("t", "http://tempuri.org/test");
Node result = ctx.findIn(document).node("/*").get();
代码示例来源:origin: org.n52.security/52n-security-decision-xacml
private void debugPDPResponse(Element response) {
StringBuilder text = new StringBuilder();
String resourceId = XMLPathCtx.createNew().findIn(response).text("//*[local-name() = 'Result']/@ResourceId").get();
String decision = XMLPathCtx.createNew().findIn(response).text("//*[local-name() = 'Result']/*[local-name() = 'Decision']/text()").get();
text.append("Resource: \t").append(resourceId ).append("\n");
text.append("Decision: \t").append(decision).append("\n");
NodeList obligationNodes = XMLPathCtx.createNew().findIn(response).all("//*[local-name() = 'Obligation']").get();
for (int i = 0; i < obligationNodes.getLength(); i++) {
Element obligationElem = (Element) obligationNodes.item(i);
String oblId = obligationElem.getAttribute("ObligationId");
String fulfillOn = obligationElem.getAttribute("FulfillOn");
text.append("Obligation: \t").append(oblId ).append("(fulfillOn:").append(fulfillOn).append(")\n");
appendAttributeAssignments(text, XMLPathCtx.createNew().findIn(obligationElem).all(".//*[local-name()='AttributeAssignment']").get());
}
LOG.debug("PDP response\n" + text);
}
代码示例来源:origin: org.n52.security/52n-security-wss
private List<AuthenticationMethod> getSupportedAuthenticationMethods() {
List<AuthenticationMethod> supportedAuthNMethods = new ArrayList<AuthenticationMethod>();
NodeList authenticationMethodList = m_xPathCtx.findIn(m_capsDoc).all("//authn:AuthenticationMethod").get();
for (int i = 0; i < authenticationMethodList.getLength(); i++) {
org.w3c.dom.Node currentAuthMethod = authenticationMethodList.item(i);
String type = m_xPathCtx.findIn(currentAuthMethod).text("@xsi:type").get();
type = type.substring(type.lastIndexOf(":") + 1);
String method = m_xPathCtx.findIn(currentAuthMethod).text("@method").get();
AuthenticationMethod supportedAuthMethod;
if (type.equals("WASType")) {
org.w3c.dom.Node accAuthNServiceNode = m_xPathCtx.findIn(currentAuthMethod).node("//authn:AuthenticationService").get();
String wasName = m_xPathCtx.findIn(accAuthNServiceNode).text("authn:Name/text()").get();
String wasUrl = m_xPathCtx.findIn(accAuthNServiceNode).text("authn:OnlineResource/@xlink:href").get();
supportedAuthMethod = new org.n52.security.authentication.WASAuthenticationMethod(wasName, wasUrl, "");
} else {
supportedAuthMethod = AuthenticationMethodFactory.getDefault().create(method);
}
supportedAuthNMethods.add(supportedAuthMethod);
}
return supportedAuthNMethods;
}
}
代码示例来源:origin: org.n52.security/52n-security-core
if (XPathConstants.STRING == m_previous.getReturnType()) {
+ "this works only if the string is wellformed xml");
return m_xPath.evaluate(new InputSource(new StringReader((String) m_previous.eval())), getReturnType());
} else if (XPathConstants.NODE == m_previous.getReturnType()) {
return m_xPath.evaluate(m_previous.eval(), getReturnType());
} else if (XPathConstants.NODESET == m_previous.getReturnType()) {
return evalNodeList((NodeList) m_previous.eval());
} else if (m_previous.getReturnType() == null) {
return m_xPath.evaluate((InputSource) m_previous.eval(), getReturnType());
} else if (XPathConstants.NUMBER == m_previous.getReturnType()) {
} else if (XPathConstants.BOOLEAN == m_previous.getReturnType()) {
"return type of unknown format expected <" + m_previous.getReturnType() + ">");
代码示例来源:origin: org.n52.metadata/smarteditor-api
public String getTemplateFor(Document document) {
Node rootNode = context.findIn(document).node("/*[1]").get();
String serviceType = getServiceTypeFrom(rootNode);
String version = context.findIn(rootNode).text("@version").get();
return version.equals("") ? templateMap.get(serviceType) : templateMap.get(serviceType + "_" + version);
}
代码示例来源:origin: org.n52.security/52n-security-decision-xacml
public void debugPDPRequest(final Element request) {
StringBuilder text = new StringBuilder();
NodeList requestChildNodes = XMLPathCtx.createNew().findIn(request).all("/*[local-name() = 'Request']/*").get();
for (int i = 0; i < requestChildNodes.getLength(); i++) {
Element requestChild = (Element) requestChildNodes.item(i);
text.append(requestChild.getLocalName()).append("\n");
appendAttributes(text, XMLPathCtx.createNew().findIn(requestChild).all(".//*[local-name()='AttributeValue']").get());
}
LOG.debug("PDP request\n" + text);
}
代码示例来源:origin: org.n52.security/52n-security-enforcement-impl
NodeList queryNodes = ctx.findIn(m_requestDocument).all("/GetFeature/Query").get();
Node queryFilterSubNode = ctx.findIn(queryNode).node("Filter/*").get();
代码示例来源:origin: org.n52.metadata/smarteditor-api
public String getValue(Node rootNode, XMLPathCtx context) {
String nameSpaceURI = getNamespaceURI(rootNode);
if (startsWith ? nameSpaceURI.startsWith(namespace) : nameSpaceURI.equals(namespace)) {
if (nodeExists != null && context.findIn(rootNode).node(nodeExists).get() != null) {
return value;
} else {
return value;
}
}
return null;
}
}
代码示例来源:origin: org.n52.metadata/smarteditor-api
private void buildExtentTemplate(Document document, Map<String, String> hashMap, XMLPathCtx xmlPathCtx) {
hashMap.put("west", xmlPathCtx.findIn(document).text("//gmd:westBoundLongitude/*/text()").get());
hashMap.put("east", xmlPathCtx.findIn(document).text("//gmd:eastBoundLongitude/*/text()").get());
hashMap.put("north", xmlPathCtx.findIn(document).text("//gmd:northBoundLatitude/*/text()").get());
hashMap.put("south", xmlPathCtx.findIn(document).text("//gmd:southBoundLatitude/*/text()").get());
}
代码示例来源:origin: org.n52.security/52n-security-core
/**
* Method evals a path on a NodeList.
*
* @param nodeList the nodeList.
* @return Object.
* @throws XPathExpressionException if error occurs.
*/
private Object evalNodeList(final NodeList nodeList) throws XPathExpressionException {
if (getReturnType() != XPathConstants.NODESET) {
for (int i = 0, l = nodeList.getLength(); i < l; ++i) {
Object result = m_xPath.evaluate(nodeList.item(i), getReturnType());
if (result != null) {
return result;
}
}
return null;
} else {
SimpleNodeList resultNodes = new SimpleNodeList();
for (int i = 0, l = nodeList.getLength(); i < l; ++i) {
resultNodes.addAll((NodeList) m_xPath.evaluate(nodeList.item(i), getReturnType()));
}
return resultNodes;
}
}
代码示例来源:origin: org.n52.security/52n-security-enforcement-impl
/**
* Get position from feature node.
*
* @param node
* feature
* @return position as text
*/
private String getPositionFromSamplingPoint(Node node) {
NodeList nl =
ctxResponse
.findIn(node)
.all("./" + SOSInterceptorGlobals.ELEMENT_SA_POSITION + "/"
+ SOSInterceptorGlobals.ELEMENT_GML_POINT + "/"
+ SOSInterceptorGlobals.ELEMENT_GML_POS).get();
for (int i = 0; i < nl.getLength();) {
return nl.item(i).getTextContent();
}
return "0 0";
}
代码示例来源:origin: org.n52.security/52n-security-enforcement-impl
ctx.findIn(doc).all("//*/sos:ObservationOfferingList/sos:ObservationOffering").get();
NodeList procedureList =
ctx.findIn(doc)
.all("//*/sos:ObservationOfferingList/sos:ObservationOffering[@gml:id='"
+ offeringID + "']/sos:procedure").get();
NodeList observedPropertyList =
ctx.findIn(doc)
.all("//*/sos:ObservationOfferingList/sos:ObservationOffering[@gml:id='"
+ offeringID + "']/sos:observedProperty").get();
NodeList featureOfInterestList =
ctx.findIn(doc)
.all("//*/sos:ObservationOfferingList/sos:ObservationOffering[@gml:id='"
+ offeringID + "']/sos:featureOfInterest").get();
.node("//*/ows:OperationsMetadata/ows:Operation/ows:Parameter[@name='eventTime']/ows:AllowedValues/ows:Range/ows:MinimumValue")
.get();
Node maximumValue =
ctx.findIn(doc)
.node("//*/ows:OperationsMetadata/ows:Operation/ows:Parameter[@name='eventTime']/ows:AllowedValues/ows:Range/ows:MaximumValue")
.get();
代码示例来源:origin: org.n52.security/52n-security-wss
private Node getSecuredServiceTypeNode() {
Node securedServiceTypeNode = m_xPathCtx.findIn(m_capsDoc).node("//wss:SecuredServiceType").get();
return securedServiceTypeNode;
}
代码示例来源:origin: org.n52.metadata/smarteditor-api
private void buildPartyTemplate(Document document, Map<String, String> hashMap, XMLPathCtx xmlPathCtx) {
hashMap.put("IndividualName", xmlPathCtx.findIn(document).text("//gmd:individualName/*/text()").get());
hashMap.put("PositionName", xmlPathCtx.findIn(document).text("//gmd:positionName/*/text()").get());
hashMap.put("OrganisationName", xmlPathCtx.findIn(document).text("//gmd:organisationName/*/text()").get());
hashMap.put("Voice", xmlPathCtx.findIn(document).text("//gmd:contactInfo/*/gmd:phone/*/gmd:voice/*/text()").get());
hashMap.put("Fax", xmlPathCtx.findIn(document).text("//gmd:contactInfo/*/gmd:phone/*/gmd:facsimile/*/text()").get());
hashMap.put("DeliveryPoint", xmlPathCtx.findIn(document).text("//gmd:contactInfo/*/gmd:address/*/gmd:deliveryPoint/*/text()").get());
hashMap.put("City", xmlPathCtx.findIn(document).text("//gmd:contactInfo/*/gmd:address/*/gmd:city/*/text()").get());
hashMap.put("AdministrativeArea", xmlPathCtx.findIn(document).text("//gmd:contactInfo/*/gmd:address/*/gmd:administrativeArea/*/text()").get());
hashMap.put("PostalCode", xmlPathCtx.findIn(document).text("//gmd:contactInfo/*/gmd:address/*/gmd:postalCode/*/text()").get());
hashMap.put("Country", xmlPathCtx.findIn(document).text("//gmd:contactInfo/*/gmd:address/*/gmd:country/*/text()").get());
hashMap.put("MailAddress", xmlPathCtx.findIn(document).text("//gmd:contactInfo/*/gmd:address/*/gmd:electronicMailAddress/*/text()").get());
hashMap.put("Role", xmlPathCtx.findIn(document).text("//gmd:role/*/@codeListValue").get());
hashMap.put("Url", xmlPathCtx.findIn(document).text("//gmd:contactInfo/*/gmd:onlineResource/*/gmd:linkage/gmd:URL").get());
}
代码示例来源:origin: org.n52.security/52n-security-wss
/**
* @return
*/
public LicensePrecondition getLicensePrecondition() {
org.w3c.dom.Node licBroClientElement = m_xPathCtx.findIn(m_capsDoc).node("/wss:WSS_Capabilities/wss:Capability/licb:LicensePrecondition/licb:LicenseBrokerClient").get();
if (licBroClientElement == null) {
return null;
}
String licenseRedirectURL = m_xPathCtx.findIn(licBroClientElement).text("licb:RedirectURL/text()").get();
String ssoGetURL = m_xPathCtx.findIn(licBroClientElement).text("licb:SSOGetURL").get();
if (licenseRedirectURL == null && ssoGetURL == null) {
String baseUrl = m_xPathCtx.findIn(licBroClientElement).text("ows:DCP/ows:HTTP/ows:Post/text()").get();
if (baseUrl == null) {
return null;
}
baseUrl = ensureSingleEndingSlash(baseUrl);
licenseRedirectURL = baseUrl + "getOrCreateLicenseToken.faces";
ssoGetURL = baseUrl + "getLicenseToken.faces";
}
LicensePrecondition licensePrecondition = new LicensePrecondition(ssoGetURL.trim(), licenseRedirectURL.trim(), null);
return licensePrecondition;
}
代码示例来源:origin: org.n52.metadata/smarteditor-api
for (Document record : records) {
Map<String, Object> innerMap = new HashMap<>();
String fileIdentifier = context.findIn(record).text("//gmd:fileIdentifier[1]/*/text()").get();
String title = context.findIn(record).text("//gmd:identificationInfo[1]/*/gmd:citation/*/gmd:title/*/text()").get();
String lResourceType = context.findIn(record).text("//gmd:hierarchyLevel[1]/*/@codeListValue").get();
innerMap.put("title", title);
innerMap.put("resourceType", lResourceType);
NodeList identifiers = context.findIn(record).all("//gmd:identificationInfo[1]/*/gmd:citation/*/gmd:identifier/*").get();
List<String> resourceIdList = new ArrayList<>();
for (int i = 0; i < identifiers.getLength(); i++) {
Node node = identifiers.item(i);
String code = context.findIn(node).text("gmd:code/*/text()").get();
String codeSpace = context.findIn(node).text("gmd:codeSpace/*/text()").get();
StringBuilder stringBuilder = new StringBuilder();
if (!StringUtils.isEmpty(codeSpace)) {
代码示例来源:origin: org.n52.security/52n-security-enforcement-impl
/**
* Get position from feature node.
*
* @param node
* feature
* @return position as text
*/
private String getPositionFromSamplingPoint(Node node) {
NodeList nl =
ctx.findIn(node)
.all("./" + SOSInterceptorGlobals.ELEMENT_SA_POSITION + "/"
+ SOSInterceptorGlobals.ELEMENT_GML_POINT + "/"
+ SOSInterceptorGlobals.ELEMENT_GML_POS).get();
for (int i = 0; i < nl.getLength();) {
return nl.item(i).getTextContent();
}
return "0 0";
}
代码示例来源:origin: org.n52.security/52n-security-enforcement-impl
ctx.findIn(doc).all("//*/sos:Contents/sos:ObservationOfferingList/sos:ObservationOffering").get();
.node("//*/sos:Contents/sos:ObservationOfferingList/sos:ObservationOffering[@gml:id='"
+ offeringID + "']/sos:time/gml:TimePeriod/gml:beginPosition").get();
.node("//*/sos:Contents/sos:ObservationOfferingList/sos:ObservationOffering[@gml:id='"
+ offeringID + "']/sos:time/gml:TimePeriod/gml:endPosition").get();
代码示例来源:origin: org.n52.security/52n-security-facade
public static SAML2IdPMetadata createFrom(Element idpSsoDescrElement) throws MalformedURLException {
XMLPathCtx xpathCtx = XMLPathCtx.createNew().addNamespace("md", "urn:oasis:names:tc:SAML:2.0:metadata");
NodeList nodeList = xpathCtx.findIn(idpSsoDescrElement).all("md:SingleSignOnService").get();
SAML2IdPMetadata metadata = new SAML2IdPMetadata();
for (int i = 0; i < nodeList.getLength(); i++) {
Element ssoService = (Element) nodeList.item(i);
String binding = ssoService.getAttribute("Binding");
String location = ssoService.getAttribute("Location");
metadata.addSSOBinding(binding, new URL(location));
}
Element organizationElem = (Element) xpathCtx.findIn(idpSsoDescrElement).node("./../md:Organization").get();
if (organizationElem == null) {
String entityID = xpathCtx.findIn(idpSsoDescrElement).text("./../@entityID").get();
metadata.setOrganisationDisplayName(entityID);
} else {
String idpDisplayName = xpathCtx.findIn(organizationElem).text("md:OrganizationDisplayName/text()").get();
metadata.setOrganisationDisplayName(idpDisplayName);
}
return metadata;
}
代码示例来源:origin: org.n52.security/52n-security-wss
public void setAuthenticationMethods(Collection<AuthenticationMethod> methods) {
Node newSuppAuthMethodsElem = m_capsDoc.createElementNS("http://www.gdi-nrw.org/wss", "SupportedAuthenticationMethodList");
Node capabilityElement = m_xPathCtx.findIn(m_capsDoc).node("//wss:Capability").get();
Node lOldSuppAuthMethodsElem =
m_xPathCtx.findIn(capabilityElement).node("//wss:Capability/wss:SupportedAuthenticationMethodList").get();
if (lOldSuppAuthMethodsElem != null) {
capabilityElement.removeChild(lOldSuppAuthMethodsElem);
}
AuthenticationMethodDOMRenderer renderer = new AuthenticationMethodDOMRenderer();
for (AuthenticationMethod method : methods) {
Element authMethodElem = renderer.render(method);
Node importedNode = m_capsDoc.importNode(authMethodElem, true);
newSuppAuthMethodsElem.appendChild(importedNode);
}
capabilityElement.appendChild(newSuppAuthMethodsElem);
}
代码示例来源:origin: org.n52.metadata/smarteditor-api
/**
* Load a builder class defined in '/catalog_api_factory.xml'
*
* @param pType xml or kvp is standard, any other type might be given also
* @param pName Name of the REquest (GetRecords, GetCapabilities, ect)
* @return Class or null, if not loaded
*/
protected Class loadClass(String pType, String pName) {
String lExpression = "//api:BuilderFactory/api:Group[@type='" + pType + "']/api:Builder[@name='" + pName + "']/api:class";
LOG.debug("Evaluating expression: {} ", lExpression);
String className = xmlPathCtx.findIn(mRoot).text(lExpression).get();
if (className == null) {
LOG.warn(lExpression + " could not be evaluated. Result is null.");
return null;
}
try {
return Class.forName(className);
} catch (ClassNotFoundException e) {
LOG.error(e.getMessage());
return null;
}
}
内容来源于网络,如有侵权,请联系作者删除!