标签: jdom

使用removeContent()从JDOM文档中删除元素

给定以下场景,其中 xml、Geography.xml 看起来像 -

<Geography xmlns:ns="some valid namespace">
    <Country>
        <Region>
            <State>
                <City>
                    <Name></Name>
                    <Population></Population>
                </City>
            </State>
            </Region>
        </Country>
    </Geography>
Run Code Online (Sandbox Code Playgroud)

以及以下示例 java 代码 -

InputStream is = new FileInputStream("C:\\Geography.xml");
SAXBuilder saxBuilder = new SAXBuilder();
Document doc = saxBuilder.build(is);

XPath xpath = XPath.newInstance("/*/Country/Region/State/City");
Element el = (Element) xpath.selectSingleNode(doc);
boolean b = doc.removeContent(el);
Run Code Online (Sandbox Code Playgroud)

removeContent()方法不会City从 的内容列表中删除该元素doc。b 的值是false
我不明白为什么它不删除 Element,我什至尝试从 xml 中删除Name&元素只是为了看看这是否是问题,但显然不是。 我尝试的另一种方法,我不知道为什么我知道它没有本质上的不同,仍然只是为了使用- Population
Parent

Parent p = el.getParent();
boolean s = p.removeContent(new Element("City"));
Run Code Online (Sandbox Code Playgroud)

可能是什么问题?以及可能的解决方案?如果有人可以分享该方法的真实行为removeContent() …

java xml jdom

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

为什么JDOM的getChild()方法返回null?

我正在做一个关于html文档操作的项目.我希望现有的html文档中的正文内容将其修改为新的html.现在我正在使用JDOM.我想在我的编码中使用body元素.因为我在编码中使用了getChild("body").但它将null返回给我的program.But我的html文档有一个body元素.可以有人帮我知道这个问题我是学生?

会很感激指针..

编码:

import org.jdom.Document;
import org.jdom.Element;
public static void getBody() {
SAXBuilder builder = new SAXBuilder("org.ccil.cowan.tagsoup.Parser", true);
org.jdom.Document jdomDocument=builder.build("http://www......com");
Element root = jdomDocument.getRootElement();
      //It returns null
System.out.println(root.getChild("body"));
}
Run Code Online (Sandbox Code Playgroud)

请参考这些..我的html的root和childs在控制台中打印...

root.getName():html

SIZE:2

[Element: <head [Namespace: http://www.w3.org/1999/xhtml]/>]

[Element: <body [Namespace: http://www.w3.org/1999/xhtml]/>]
Run Code Online (Sandbox Code Playgroud)

html java xml jdom

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

JDom使用XPath

我是JDom的新手,我尝试使用XPath来访问我的xml文件.我的代码如下:

public static void main(String[] args) throws Exception {
    Document doc = new SAXBuilder().build("file.xml");
    XPath x = XPath.newInstance("xpath");

    //select the first element in the nodeset
    Element elem = (Element)x.selectSingleNode(doc);
    ......
}
Run Code Online (Sandbox Code Playgroud)

我已经导入了org.jdom.xpath.XPath类.当我使用javac编译类时,它没有给出任何错误,但是当我尝试运行程序时,它会给出以下异常消息:

Exception in thread "main" java.lang.NoClassDefFoundError: org/jaxen/NamespaceContext
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at org.jdom.xpath.XPath.newInstance(XPath.java:134)
        at myclassname.main(xmlTohtml.java:18)
Caused by: java.lang.ClassNotFoundException: org.jaxen.NamespaceContext
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        ... 4 more
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么吗?任何帮助将不胜感激!

我在我的.cshrc文件中添加了jaxen和dom4j,该文件直接位于我的主目录下,并且两个jar文件也在同一目录中.

setenv CLASSPATH ${CLASSPATH}:/homedirectory/jaxen-1.1.1.jar
setenv CLASSPATH ${CLASSPATH}:/homedirectory/dom4j-1.6.1.jar
Run Code Online (Sandbox Code Playgroud)

当我从命令行尝试此命令时,它会生成新的异常....

Exception in …
Run Code Online (Sandbox Code Playgroud)

java dom sax jdom

3
推荐指数
1
解决办法
8272
查看次数

未知协议:c(JDOM a SAXBuilder)

我正在使用带有SAXBuilder的JDOM来解析XML文件,我遇到了一个抛出此错误的文件的问题:

java.net.MalformedURLException: unknown protocol: c
    at java.net.URL.<init>(URL.java:574)
    at java.net.URL.<init>(URL.java:464)
    at java.net.URL.<init>(URL.java:413)
    at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
    at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:518)
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:986)
    at com.foo.moo.MyClass.getValues(MyClass.java:321)
Run Code Online (Sandbox Code Playgroud)

这条线是:

Document document = null; 
document = sxb.build(files.elementAt(i)); // This one
Run Code Online (Sandbox Code Playgroud)

在对互联网进行一些研究后,我认为该错误与Java 1.6有关.

你怎么看 ?

java parsing sax exception jdom

3
推荐指数
1
解决办法
9434
查看次数

android异常,即使jdom库存在

在此输入图像描述

jdom库在那里,我已经删除并一次又一次地添加到构建路径.而且,我已多次清理该项目.但我仍然得到这个错误:

 04-27 10:51:27.867: W/ActivityThread(530): Application com.pkg.src.nhs.glos is waiting for the debugger on port 8100...
    04-27 10:51:27.936: I/System.out(530): Sending WAIT chunk
    04-27 10:51:29.396: I/dalvikvm(530): Debugger is active
    04-27 10:51:29.736: I/System.out(530): Debugger has connected
    04-27 10:51:29.746: I/System.out(530): waiting for debugger to settle...
    04-27 10:51:29.996: I/System.out(530): waiting for debugger to settle...
    04-27 10:51:30.262: I/System.out(530): waiting for debugger to settle...
    04-27 10:51:30.479: I/System.out(530): waiting for debugger to settle...
    04-27 10:51:30.689: I/System.out(530): waiting for debugger to settle...
    04-27 10:51:30.896: I/System.out(530): waiting for debugger to settle... …
Run Code Online (Sandbox Code Playgroud)

eclipse android jdom eclipse-adt

3
推荐指数
1
解决办法
1470
查看次数

JDOM,umaluts和UTF-8

我有使用utf-8和JDOM解析器的问题.我的代码不会用utf-8编写.这是代码:

import java.io.FileWriter;
import java.io.IOException;
import org.jdom2.Element;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;
import org.jdom2.Document;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;

public class Jdom2 {

public static void main(String[] args) throws JDOMException, IOException {

    String textValue = null;
    try {
        SAXBuilder sax = new SAXBuilder();
        Document doc = sax.build("path/to/file.xml");

        Element rootNode = doc.getRootElement();
        Element application = rootNode.getChild("application");
        Element de_DE = application.getChild("de_DE");
        textValue = de_DE.getText();
        System.out.println(textValue);
        application.getChild("de_DE").setText(textValue);

        Format format = Format.getPrettyFormat();
        format.setEncoding("UTF-8");
        XMLOutputter xmlOutput = new XMLOutputter(format);
        xmlOutput.output(doc, new FileWriter("path/to/file.xml"));

    }catch (IOException io) {
        io.printStackTrace(); …
Run Code Online (Sandbox Code Playgroud)

java utf-8 jdom

3
推荐指数
1
解决办法
5238
查看次数

如何在java中使用jdom从节点中删除子节点?

我有一个 xml 结构如下:

<rurl modify="0" children="yes" index="8" name="R-URL">
    <status>enabled</status>
    <rurl-link priority="3">http</rurl-link>
    <rurl-link priority="5">http://localhost:80</rurl-link>
    <rurl-link priority="4">abc</rurl-link>
    <rurl-link priority="3">b</rurl-link>
    <rurl-link priority="2">a</rurl-link>
    <rurl-link priority="1">newlinkkkkkkk</rurl-link>
</rurl>
Run Code Online (Sandbox Code Playgroud)

现在,我想删除一个子节点,其中 text 等于 http。目前我正在使用此代码:

while(subchilditr.hasNext()){
    Element subchild = (Element)subchilditr.next();
    if (subchild.getText().equalsIgnoreCase(text)) {
        message = subchild.getText();
        update = "Success";
        subchild.removeAttribute("priority");
        subchild.removeContent();
    }
Run Code Online (Sandbox Code Playgroud)

但它并没有完全从 xml 文件中删除子元素。它留给我

<rurl-link/>
Run Code Online (Sandbox Code Playgroud)

有什么建议?

java xml parent-child jdom

2
推荐指数
1
解决办法
5180
查看次数

jdom表现

我目前正在使用本机Java XML处理库(Xerces).我不能使用任何sax解析器,因为我需要随机访问xml节点.当我解析XML文件时,我发现CPU使用率达到100%.我正在处理大量小尺寸(1-10kb) -

while(hasFile){
processXMlfile(hasFile.next);
}
Run Code Online (Sandbox Code Playgroud)

在processXMlfile()中,我正在构建解析和处理文件.

如果我转到JDOM库,我会获得任何性能优势吗?

java xml performance jdom xml-parsing

2
推荐指数
1
解决办法
2123
查看次数

使用JDOM获取xml文件中的元素值

我有xml文件

<?xml version="1.0" encoding="UTF-8"?>
<products xmlns="http://www.myapp.com/shop" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.myapp.com/shop shop.xsd">
    <category name="yyy">
        <subcategory name="yyy1">
            <goods name="yyy11">                
                <model>ferrari</model>              
            </goods>
        </subcategory>
    </category>
</products>
Run Code Online (Sandbox Code Playgroud)

我试图让元素的值<model>作为

SAXBuilder builder = new SAXBuilder();
File xmlProductFile = new File("shop.xml");
Document document = builder.build(xmlProductFile);
Element rootNode = document.getRootElement();       

String category = rootNode.getChild("model").getText();
Run Code Online (Sandbox Code Playgroud)

但我得到空值

java xml jdom xml-parsing jdom-2

2
推荐指数
1
解决办法
9797
查看次数

从输入流 Java 解析 XML

大家好,目前正在开发一个需要解析 xml 文档以便对用户进行身份验证的应用程序。我使用 java.net.* 包的 URLConnection 类连接到特定的 URL,该 URL 以 xml 格式返回其响应。当我尝试使用 jdom 解析文档时,出现以下错误:
org.jdom2.input.JDOMParseException: Error on line 1: Premature end of file

任何人都可以查明问题并帮助我采取补救措施吗?谢谢,这是我的代码的一部分

try {
  String ivyString = "http://kabugi.hereiam.com/?username=" + ivyUsername + "&password=" + ivyPassword;

  URL authenticateURL = new URL(ivyString);
  URLConnection ivyConnection = authenticateURL.openConnection();
  HttpURLConnection ivyHttp = (HttpURLConnection) ivyConnection;
  System.out.println("Response code ==>" + ivyHttp.getResponseCode());
  if (ivyHttp.getResponseCode() != 200) {
    ctx.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Invalid username or password!", ""));
    page = "confirm.xhtml";
  } else {
    BufferedReader inputReader = new BufferedReader(new InputStreamReader(ivyConnection.getInputStream())); …
Run Code Online (Sandbox Code Playgroud)

java xml parsing jdom

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