本文整理汇总了Java中nu.xom.XPathContext类的典型用法代码示例。如果您正苦于以下问题:Java XPathContext类的具体用法?Java XPathContext怎么用?Java XPathContext使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
XPathContext类属于nu.xom包,在下文中一共展示了XPathContext类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: validateWithSchematron
import nu.xom.XPathContext; //导入依赖的package包/类
/**
* Performs a Schematron validation of the DDMS Resource, via the ISO Schematron skeleton stylesheets for XSLT1
* or XSLT2 processors. This action can only be performed on a DDMS Resource which is already valid according
* to the DDMS specification.
*
* <p>The informational results of this validation are returned to the caller in a list of ValidationMessages of
* type "Warning" for reports and "Error" for failed asserts. These messages do NOT affect the validity of the
* underlying object model. The locator on the ValidationMessage will be the location attribute from the
* successful-report or failed-assert element.</p>
*
* <p>Details about ISO Schematron can be found at: http://www.schematron.com/ </p>
*
* @param schematronFile the file containing the ISO Schematron constraints. This file is transformed with the ISO
* Schematron skeleton files.
* @return a list of ValidationMessages
* @throws XSLException if there are XSL problems transforming with stylesheets
* @throws IOException if there are problems reading or parsing the Schematron file
*/
public List<ValidationMessage> validateWithSchematron(InputStream schematronFile) throws XSLException, IOException {
List<ValidationMessage> messages = new ArrayList<ValidationMessage>();
XSLTransform schematronTransform = Util.buildSchematronTransform(schematronFile);
Nodes nodes = schematronTransform.transform(new Document(getXOMElementCopy()));
Document doc = XSLTransform.toDocument(nodes);
XPathContext context = XPathContext.makeNamespaceContext(doc.getRootElement());
String svrlNamespace = context.lookup("svrl");
Nodes outputNodes = doc.query("//svrl:failed-assert | //svrl:successful-report", context);
for (int i = 0; i < outputNodes.size(); i++) {
if (outputNodes.get(i) instanceof Element) {
Element outputElement = (Element) outputNodes.get(i);
boolean isAssert = "failed-assert".equals(outputElement.getLocalName());
String text = outputElement.getFirstChildElement("text", svrlNamespace).getValue();
String locator = outputElement.getAttributeValue("location");
messages.add(isAssert ? ValidationMessage.newError(text, locator) : ValidationMessage.newWarning(text,
locator));
}
}
return (messages);
}
示例2: updateProperty
import nu.xom.XPathContext; //导入依赖的package包/类
void updateProperty(Document pom, String propertyName, String newVersion) throws MojoExecutionException {
XPathContext context = new XPathContext("mvn", "http://maven.apache.org/POM/4.0.0");
Nodes nodes = pom.query("//mvn:properties", context);
if (nodes.size() > 0) {
final Element propertiesElement = (Element) nodes.get(0);
Elements properties = propertiesElement.getChildElements();
for (int i = 0; i < properties.size(); i++) {
Element property = properties.get(i);
if (property.getLocalName().equals(propertyName)) {
Element newRange = new Element(propertyName, "http://maven.apache.org/POM/4.0.0");
newRange.appendChild(newVersion);
propertiesElement.replaceChild(property, newRange);
}
}
}
}
示例3: update
import nu.xom.XPathContext; //导入依赖的package包/类
@Test
public void update()
throws ValidityException, ParsingException, IOException, MojoExecutionException {
Document pom = new Builder().build(new File(new File("src/it/reflector"), "pom.xml"));
Artifact artifact = new DefaultArtifact(
"net.stickycode",
"sticky-coercion",
"jar",
"",
"[3.1,4)");
new StickyBoundsMojo().updateDependency(pom, artifact, "[3.6,4)");
XPathContext context = new XPathContext("mvn", "http://maven.apache.org/POM/4.0.0");
Nodes versions = pom.query("//mvn:version", context);
assertThat(versions.size()).isEqualTo(3);
Nodes nodes = pom.query("//mvn:version[text()='[3.6,4)']", context);
assertThat(nodes.size()).isEqualTo(1);
Node node = nodes.get(0);
assertThat(node.getValue()).isEqualTo("[3.6,4)");
}
示例4: updateWithClassifier
import nu.xom.XPathContext; //导入依赖的package包/类
@Test
public void updateWithClassifier()
throws ValidityException, ParsingException, IOException, MojoExecutionException {
Document pom = new Builder().build(new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("classifiers.xml"))));
Artifact artifact = new DefaultArtifact(
"net.stickycode",
"sticky-coercion",
"jar",
"",
"[2.1,4)");
new StickyBoundsMojo().updateDependency(pom, artifact, "[2.6,3)");
XPathContext context = new XPathContext("mvn", "http://maven.apache.org/POM/4.0.0");
Nodes versions = pom.query("//mvn:version", context);
assertThat(versions.size()).isEqualTo(4);
Nodes nodes = pom.query("//mvn:version[text()='[2.6,3)']", context);
assertThat(nodes.size()).isEqualTo(1);
Node node = nodes.get(0);
assertThat(node.getValue()).isEqualTo("[2.6,3)");
}
示例5: updateTheClassifier
import nu.xom.XPathContext; //导入依赖的package包/类
@Test
public void updateTheClassifier()
throws ValidityException, ParsingException, IOException, MojoExecutionException {
Document pom = new Builder().build(new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("classifiers.xml"))));
Artifact artifact = new DefaultArtifact(
"net.stickycode",
"sticky-coercion",
"jar",
"test-jar",
"[2.1,4)");
new StickyBoundsMojo().updateDependency(pom, artifact, "[2.6,3)");
XPathContext context = new XPathContext("mvn", "http://maven.apache.org/POM/4.0.0");
Nodes versions = pom.query("//mvn:version", context);
assertThat(versions.size()).isEqualTo(4);
Nodes nodes = pom.query("//mvn:version[text()='[2.6,3)']", context);
assertThat(nodes.size()).isEqualTo(1);
Node node = nodes.get(0);
assertThat(node.getValue()).isEqualTo("[2.6,3)");
}
示例6: handleParagraph
import nu.xom.XPathContext; //导入依赖的package包/类
@Override
public State handleParagraph(Element matchElement, Document document,
XPathContext xPathContext) {
// found an editable paragraph?
if (matchElement.getFirstChildElement("permStart", Namespace.MAIN.toUri()) != null) { //$NON-NLS-1$
if (matchElement.getFirstChildElement("permEnd", Namespace.MAIN.toUri()) != null) { //$NON-NLS-1$
return State.SEEKPERMSTART; // yes, but since permEnd is also present we continue searching the next editable paragraph
}
return State.INPERM; // yes, so change state to search the end of the section
}
else if (DocumentUtil.hasMatch(
matchElement, "w:pPr/w:pStyle[@w:val='DH-BibliographyHeading']", xPathContext) //$NON-NLS-1$
&& (DocumentUtil.hasMatch(matchElement, "w:r", xPathContext))) { //$NON-NLS-1$
// the References section is not editable but we want to keep it and continue with searching
return State.SEEKPERMSTART;
}
else {
// remove the non editable section and continue with searching
matchElement.getParent().removeChild(matchElement);
return State.SEEKPERMSTART;
}
}
示例7: stripTemplateSections
import nu.xom.XPathContext; //导入依赖的package包/类
public void stripTemplateSections(Document document, XPathContext xPathContext) {
// grab all paragraphs and loose permEnds (permStart is always inside a paragraph)
Nodes searchResult =
document.query("/w:document/w:body/w:p | /w:document/w:body/w:permEnd", xPathContext); //$NON-NLS-1$
// we start by looking for the first editable section start
State currentState = State.SEEKPERMSTART;
// loop over the search result
for (int i=0; i<searchResult.size(); i++) {
Element paragraphElement = (Element)searchResult.get(i);
currentState = currentState.getStateHandler().handleParagraph(
paragraphElement, document, xPathContext);
}
}
示例8: getFirstMatch
import nu.xom.XPathContext; //导入依赖的package包/类
/**
* @param document the document to search in
* @param query the search query
* @param xPathContext the context for the query
* @return the first match
* @throws IllegalStateException if there is no such match
*/
public static Element getFirstMatch(Document document, String query,
XPathContext xPathContext) {
Nodes nodes = document.query(query, xPathContext);
if ((nodes.size() > 0) && (nodes.get(0) instanceof Element)) {
return (Element)nodes.get(0);
}
throw new IllegalStateException(
Messages.getString("DocumentUtil.unexpectedResult")); //$NON-NLS-1$
}
示例9: tryFirstMatch
import nu.xom.XPathContext; //导入依赖的package包/类
/**
* @param document the document to search in
* @param query the search query
* @param xPathContext the context for the query
* @return the first match or <code>null</code> if there is no match
*/
public static Element tryFirstMatch(Document document, String query,
XPathContext xPathContext) {
Nodes nodes = document.query(query, xPathContext);
if ((nodes.size() > 0) && (nodes.get(0) instanceof Element)) {
return (Element)nodes.get(0);
}
else {
return null;
}
}
示例10: toXpathContext
import nu.xom.XPathContext; //导入依赖的package包/类
private XPathContext toXpathContext(NamespaceContext namespaceContext) {
XPathContext context = new XPathContext();
Iterator prefixes = namespaceContext.getPrefixes("http://www.example.com/my");
while (prefixes.hasNext()) {
String prefix = (String) prefixes.next();
context.addNamespace(prefix, namespaceContext.getNamespaceURI(prefix));
}
return context;
}
示例11: OdtInputConverter
import nu.xom.XPathContext; //导入依赖的package包/类
public OdtInputConverter() {
// create xpathcontext with all the necessar namespaces
xPathContext = new XPathContext();
for (Namespace ns : Namespace.values()) {
xPathContext.addNamespace(
ns.getName(),
ns.toUri());
}
}
示例12: handleParagraph
import nu.xom.XPathContext; //导入依赖的package包/类
@Override
public State handleParagraph(Element matchElement, Document document,
XPathContext xPathContext) {
// are we still in an editable section?
if (matchElement.getLocalName().equals("permEnd") //$NON-NLS-1$
|| matchElement.getFirstChildElement("permEnd", Namespace.MAIN.toUri()) != null) { //$NON-NLS-1$
// editable section ends here, start searching for the next one
return State.SEEKPERMSTART;
}
return State.INPERM; // still within an editable section
}
示例13: DocxInputConverter
import nu.xom.XPathContext; //导入依赖的package包/类
public DocxInputConverter() {
xPathContext = new XPathContext();
for (Namespace ns : Namespace.values()) {
xPathContext.addNamespace(
ns.getName(),
ns.toUri());
}
}
示例14: updateDependency
import nu.xom.XPathContext; //导入依赖的package包/类
private void updateDependency(Document pom, String dependencyPath, String newVersion, Artifact artifact)
throws MojoExecutionException {
XPathContext context = new XPathContext("mvn", "http://maven.apache.org/POM/4.0.0");
Nodes nodes = pom.query(dependencyPath, context);
if (nodes.size() == 0) {
throw new MojoExecutionException(String.format("Missing <dependency> element for dependency %s, skipping.",
artifact.getArtifactId()));
}
for (int i = 0; i < nodes.size(); i++) {
Node node = nodes.get(i);
ParentNode dependency = node.getParent();
Nodes classifier = dependency.query("mvn:classifier", context);
if (classifier.size() != 0)
if (!classifier.get(0).getValue().equals(artifact.getClassifier()))
return;
final Nodes versionNodes = dependency.query("mvn:version", context);
if (versionNodes.size() > 0) {
getLog().info("Updating " + artifact.toString() + " to " + newVersion);
Element version = (Element) versionNodes.get(0);
if (!version.getValue().startsWith("${") || updateProperties) {
Element newRange = new Element("version", "http://maven.apache.org/POM/4.0.0");
newRange.appendChild(newVersion);
dependency.replaceChild(version, newRange);
}
}
else {
throw new MojoExecutionException(String.format("Missing <version> element for dependency %s, skipping.",
artifact.getArtifactId()));
}
}
}
示例15: main
import nu.xom.XPathContext; //导入依赖的package包/类
public static void main(String[] args) throws Exception {
XPathContext context = new XPathContext("xhtml", "http://www.w3.org/1999/xhtml");
Properties properties = new Properties();
properties.load(new FileInputStream(args[0]));
PropertyProvider.setProperties(properties);
ConfToolClient client = new ConfToolClient();
List<User> users = client.getUsers();
for (User user : users) {
List<Paper> papers = client.getPapers(user);
for (Paper paper : papers) {
String inputFilename =
user.getLastName().toUpperCase() + "_" + user.getFirstName()
+ "_" + paper.getTitle();
inputFilename = inputFilename.replaceAll("[^a-zA-Z_0-9]", "_");
if (inputFilename.length() > 60) {
System.out.println(user);
System.out.println(paper);
ZipFs zipFs = client.getDhcFile(user, paper);
try {
String newTitle = inputFilename.substring(0, 60);
Document htmlFile = zipFs.getDocument(inputFilename + ".html");
Element linkElement = DocumentUtil.getFirstMatch(
htmlFile, "//xhtml:a[@href='"
+ inputFilename + ".xml"
+"']", context);
linkElement.getAttribute("href").setValue(newTitle+".xml");
zipFs.putDocument(inputFilename +".html", htmlFile);
zipFs.rename(inputFilename+".html", newTitle + ".html");
zipFs.rename(inputFilename+".xml", newTitle + ".xml");
try (FileOutputStream fos = new FileOutputStream(new File(args[1], newTitle + ".dhc"))) {
fos.write(zipFs.toZipData());
}
}
catch (Exception e) {
e.printStackTrace();
try (FileOutputStream fos = new FileOutputStream(new File(args[1]+"failed/", inputFilename + ".dhc"))) {
fos.write(zipFs.toZipData());
}
}
}
}
}
// try {
// System.out.println(
// new ConfToolClient(args[0], args[1].toCharArray()).getExportData(ExportType.subsumed_authors, null, "p");
// .toXML());
// } catch (IOException e) {
// e.printStackTrace();
// }
}