标签: jdom

如何在Java中从String创建XML对象?

我正在尝试编写一个帮助我创建XML对象的代码.例如,我将给一个字符串作为函数的输入,它将返回一个XMLObject.

XMLObject convertToXML(String s) {}
Run Code Online (Sandbox Code Playgroud)

当我在网上搜索时,通常我会看到有关创建XML文档的示例.所以我看到的关于创建XML并写入文件并创建文件的所有内容.但我做了类似的事情:

Document document = new Document();
Element child = new Element("snmp");
child.addContent(new Element("snmpType").setText("snmpget"));
child.addContent(new Element("IpAdress").setText("127.0.0.1"));
child.addContent(new Element("OID").setText("1.3.6.1.2.1.1.3.0"));
document.setContent(child);
Run Code Online (Sandbox Code Playgroud)

您认为创建XML对象是否足够?还能帮助我如何从XML获取数据吗?例如,我如何IpAdress从XML获取?

非常感谢你们

编辑1:实际上现在我觉得我可能会更容易拥有一个像这样的文件base.xml,我会把所有基本的东西写进去,例如:

<snmp>
<snmpType><snmpType>
<OID></OID>
</snmp>
Run Code Online (Sandbox Code Playgroud)

然后使用此文件创建XML对象.你觉得怎么样?

java xml jdom xml-parsing

45
推荐指数
2
解决办法
15万
查看次数

如何将org.jdom.Document转换为String

如何在Java中将org.jdom.Document转换为String?

java xml jdom

26
推荐指数
2
解决办法
2万
查看次数

xpath 2.0 for java possible

我应该为XPath使用什么包?我想要查询元素,然后在这些节点周围提取一些值.也许一个或多个级别更高,一些属性.

javax.xml.xpath是XPath 1.0.是javax.xml.xpathorg.w3c.dom正确的方式,还是有更现代的实施?org.w3c.dom非常尴尬,JDOM似乎更容易.

java xml xpath dom jdom

18
推荐指数
1
解决办法
1万
查看次数

Android上的XMLSchema验证

我维护JDOM项目,我试图在Android上'认证'它.大多数工作都很好,但XML Schema验证证明是有问题的......

我的问题是:有没有办法在Android上进行XMLSchema验证?如果有,怎么样?

之前曾有人问过这样的问题,但没有给出确凿的答案:

这就是我目前所知道的(如果我错了,请纠正我)......:

  • SchemaFactory.newInstance(" http://www.w3.org/2001/XMLSchema ") - 失败,出现IllegalArgumentException
  • 来自Harmony项目的Android中的默认"ExpatParser"不支持XMLSchema验证.
  • 可以在Android应用程序中加载Xerces,甚至可以解析它,但不要进行验证解析 - 当您尝试获取'致命'Android异常导致应用程序崩溃时.

我一直在研究这个问题已经有一段时间了,我已经整理了以下"研究":

如果有人在Android上有关于XMLSchema验证的任何更多信息,我将非常感谢任何输入.

如果有人成功地对XML进行了XMLSchema验证并且可以帮助我获得适用于JDOM的功能,那么他们将获得数千个互联网点... ;-)并将在JDOM代码中永生化并提交消息.

android xsd jdom xsd-validation

17
推荐指数
1
解决办法
1124
查看次数

默认XML命名空间,JDOM和XPath

我想使用JDOM读取XML文件,然后使用XPath从JDOM文档中提取数据.它创建了Document对象,但是当我使用XPath查询Document的元素列表时,我什么也得不到.

我的XML文档在根元素中定义了一个默认命名空间.有趣的是,当我删除默认命名空间时,它成功运行XPath查询并返回我想要的元素.还有什么办法让我的XPath查询返回结果?

XML:

<?xml version="1.0" encoding="UTF-8"?>
<collection xmlns="http://www.foo.com">
<dvd id="A">
  <title>Lord of the Rings: The Fellowship of the Ring</title>
  <length>178</length>
  <actor>Ian Holm</actor>
  <actor>Elijah Wood</actor>
  <actor>Ian McKellen</actor>
</dvd>
<dvd id="B">
  <title>The Matrix</title>
  <length>136</length>
  <actor>Keanu Reeves</actor>
  <actor>Laurence Fishburne</actor>
</dvd>
</collection>
Run Code Online (Sandbox Code Playgroud)

Java的:

public static void main(String args[]) throws Exception {
    SAXBuilder builder = new SAXBuilder();
    Document d = builder.build("xpath.xml");
    XPath xpath = XPath.newInstance("collection/dvd");
    xpath.addNamespace(d.getRootElement().getNamespace());
    System.out.println(xpath.selectNodes(d));
}
Run Code Online (Sandbox Code Playgroud)

java xml xpath jdom

13
推荐指数
2
解决办法
2万
查看次数

在Scala中执行复杂的XPath查询

在scala中使用哪种最简单的API来对文档执行以下XPath查询?

//s:Annotation[@type='attitude']/s:Content/s:Parameter[@role='type' and not(text())]

//s:Annotation[s:Content/s:Parameter[@role='id' and not(text())]]/@type
Run Code Online (Sandbox Code Playgroud)

(s被定义为特定命名空间的昵称)

我在Scala的XML库上找到的唯一文档没有关于执行复杂的真实XPath查询的信息.

我曾经为此目的喜欢JDOM(在Java中),但由于JDOM不支持泛型,因此在Scala中使用会很痛苦.(Java的其他XML库在Java中往往更加痛苦,但我承认我不了解真实情况.)

java xml xpath scala jdom

13
推荐指数
2
解决办法
4443
查看次数

在Java中更改XML文件中的一个值的最佳方法是什么?

我有一个XML文件,我知道我需要更改其值的节点名称.

节点名是ipAddress.

我可以使用JDOM,获取文档,获取节点并更改值并编写它,或者我可以编写XSLT文件.

代码更改值来自Java,所以我的问题是哪个选项更好?XML文件的大小可以不同.

另一个与XSLT相关的问题:是否有可能编写一个XSLT文件,这样我就不会列出所有XML格式的节点,只会指定类似的节点if node == ipAddress,然后获取新值,以及如何从Java应用XSLT转换?

谢谢.

java xml xslt jdom

12
推荐指数
1
解决办法
7720
查看次数

如何将包含XML格式内容的String转换为JDom文档

如何将具有XML格式内容的String转换为JDom文档.

我正在尝试下面的代码:

String docString = txtEditor.getDocumentProvider().getDocument(
txtEditor.getEditorInput()).get();

SAXBuilder sb= new SAXBuilder();

doc = sb.build(new StringReader(docString));
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决上述问题.提前致谢!!

java sax eclipse-plugin jdom jdom-2

11
推荐指数
2
解决办法
3万
查看次数

hadoop map reduce实例中的InstantiationException

我是Hadoop框架的新手.我试图编写一个从hdfs读取XML文件的程序,使用JDOM解析它并将其发送到数据库.以下是Java文件

package JDOMprs;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.DoubleWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;

import com.vertica.hadoop.VerticaOutputFormat;
import com.vertica.hadoop.VerticaRecord;

public class ExampleParser extends Configured implements Tool {
    public static class Map extends Mapper<LongWritable, Text, Text, DoubleWritable> {
        private final static DoubleWritable one = new DoubleWritable(1);
        private Text word = new Text();
        private List mylist; …
Run Code Online (Sandbox Code Playgroud)

java xml hadoop jdom

8
推荐指数
1
解决办法
7105
查看次数

ClassCastException:org.apache.xerces.parsers.XIncludeAwareParserConfiguration无法强制转换为org.apache.xerces.xni.parser.XMLParserConfiguration

我正在Eclipse中开发一个GWT应用程序并使用jdom2来读取一些自定义的xml属性文件.

在最近的更新之后,我的应用程序现在在尝试读取xml文件时失败并出现上述错误.相关的堆栈跟踪是:

org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration
org.apache.xerces.parsers.SAXParser.<init>(Unknown Source)
org.apache.xerces.parsers.SAXParser.<init>(Unknown Source)
org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.<init>(Unknown Source)
org.apache.xerces.jaxp.SAXParserImpl.<init>(Unknown Source)
org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParser(Unknown Source)
org.jdom2.input.sax.XMLReaders.createXMLReader(XMLReaders.java:165)
org.jdom2.input.SAXBuilder.createParser(SAXBuilder.java:871)
org.jdom2.input.SAXBuilder.buildEngine(SAXBuilder.java:854)
org.jdom2.input.SAXBuilder.getEngine(SAXBuilder.java:904)
org.jdom2.input.SAXBuilder.build(SAXBuilder.java:1116)
uk.co.platosys.db.jdbc.DatabaseProperties.loadProperties(DatabaseProperties.java:78)
Run Code Online (Sandbox Code Playgroud)

研究此问题表明,当类路径上存在不兼容的xerces jar版本时,可能会出现错误.

gwt-dev-2.6.1.jar包含xerces包,我的预感是这个最新版本的gwt-dev捆绑了一个不兼容的版本.然而,当前版本的jdom2.0.5与2.11版本的Xerces一起发布,这似乎是Apache最新发布的版本.将这些罐子放在我的类路径上似乎无法解决问题; 我以前能够依赖gwt-dev中的版本.

我宁愿在这方面做到这一点,而且远远超出了我的舒适区.

java eclipse gwt xerces jdom

8
推荐指数
2
解决办法
2万
查看次数

标签 统计

jdom ×10

java ×9

xml ×7

xpath ×3

android ×1

dom ×1

eclipse ×1

eclipse-plugin ×1

gwt ×1

hadoop ×1

jdom-2 ×1

sax ×1

scala ×1

xerces ×1

xml-parsing ×1

xsd ×1

xsd-validation ×1

xslt ×1