标签: jdom

MalformedURL在读取文件时获取异常

我从我的weblogic 8.1环境中复制了一个代码,并在我的新环境weblogic 10.3.4中复制.以下代码安静在我的8.1环境中工作.当我使用相同的代码时,它给了我下面的例外.

  String xmlPath="e:\\domains\\devdamsdomain\\j2ee\\configurations\\dcd\\dams\\common\\interfaceconfig.xml";
  log.info("xmlpath" + xmlPath);
  SAXBuilder saxBuilder = new SAXBuilder();
  log.info("creating SAXBuilder");
  Document document = saxBuilder.build(xmlPath);
Run Code Online (Sandbox Code Playgroud)

例外情况如下:

INFO [orabpel.invoke.pool-4.thread-12] (SubRegistration_ptClient.java:76) - exception occured: unknown protocol: e
java.net.MalformedURLException: unknown protocol: e
        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 oracle.xml.parser.v2.XMLReader.pushXMLReader(XMLReader.java:250)
        at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:222)
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:453)
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:891)
        at com.ura.proxy.subregistration.proxy.SubRegistration_ptClient.callSubRegistration_process(SubRegistration_ptClient.java:68)
        at com.ura.dams.registration.businesscontrol.SubRegControlImpl.clientRequestwithReturn(SubRegControlImpl.java:19)
        at com.ura.dams.registration.process.RegistrationUpload.objSubRegClientRequestwithReturn(RegistrationUpload.java:137)
        at orabpel.registrationupload.ExecLetBxExe7.execute(ExecLetBxExe7.java:208)
        at com.collaxa.cube.engine.ext.bpel.common.wmp.BPELxExecWMP.__executeStatements(BPELxExecWMP.java:42)
        at com.collaxa.cube.engine.ext.bpel.common.wmp.BaseBPELActivityWMP.perform(BaseBPELActivityWMP.java:162)
        at com.collaxa.cube.engine.CubeEngine.performActivity(CubeEngine.java:2465)
        at com.collaxa.cube.engine.CubeEngine.handleWorkItem(CubeEngine.java:1132)
        at com.collaxa.cube.engine.dispatch.message.instance.PerformMessageHandler.handleLocal(PerformMessageHandler.java:73)
        at com.collaxa.cube.engine.dispatch.DispatchHelper.handleLocalMessage(DispatchHelper.java:219)
        at com.collaxa.cube.engine.dispatch.DispatchHelper.sendMemory(DispatchHelper.java:327)
        at com.collaxa.cube.engine.CubeEngine.endRequest(CubeEngine.java:4350)
        at com.collaxa.cube.engine.CubeEngine.endRequest(CubeEngine.java:4281)
        at com.collaxa.cube.engine.CubeEngine._createAndInvoke(CubeEngine.java:713)
        at com.collaxa.cube.engine.CubeEngine.createAndInvoke(CubeEngine.java:545)
        at com.collaxa.cube.engine.delivery.DeliveryService.handleInvoke(DeliveryService.java:654) …
Run Code Online (Sandbox Code Playgroud)

java xml jdom

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

JDom XML过滤

我正在尝试计算文档中有多少元素:

Iterator<?> processDescendants = doc.getDescendants(new ElementFilter("a")); 

while(processDescendants.hasNext()) {
   numPending++;
}

processDescendants = doc.getDescendants(new ElementFilter("b")); 

while(processDescendants.hasNext()) {
   numPending++;
}   
Run Code Online (Sandbox Code Playgroud)

必须有一种更简单的方法......例如:

processDescendants = doc.getDescendants(new ElementFilter("a|b")); // something like Regex maybe?
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?谢谢.

java xml jdom

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

JDom有没有org.w3c.dom包装器?

我试图以一种它也可以在JDom文档上运行的方式来增强jOOX API ,而不仅仅是.而不是重复一切,我想知道是否有任何库实现接口,同时包装JDomorg.w3c.dom.Documentorg.w3c.dom

注意,我不是在寻找org.jdom.output.DOMOutputter,它将JDom文档转换为DOM文档.我怀疑频繁的转换会非常缓慢.我正在寻找一个包装器,它使用JDom类实现w3c dom.

java xml w3c dom jdom

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

使用JDOM / XML创建Java xml

我在创建xml时遇到问题

    <c:condition>
        <a:condition>
            <fieldName>fieldName</fieldName>
            <fieldTest>fieldTest</fieldTest>
            <fieldValues>
                <fieldValue>fieldValue</fieldValue>
            </fieldValues>
        </a:condition>
        <operator>operator</operator>
        <a:condition>
            <fieldName>fieldName</fieldName>
            <fieldTest>fieldTest</fieldTest>
            <fieldValues>
                <fieldValue>fieldValue</fieldValue>
            </fieldValues>
        </a:condition>
    </c:condition>
Run Code Online (Sandbox Code Playgroud)

上面是给我的xml标记。

我需要使用Java中的JDOM / XML创建此标签。

所以我正在使用

Element complexCondition = new Element("c:condition");
Run Code Online (Sandbox Code Playgroud)

创建“ c:condition”标签的代码。

但是我出错了

org.jdom.IllegalNameException: The name "c:condition" is not legal for JDOM/XML elements: Element names cannot contain colons.
Run Code Online (Sandbox Code Playgroud)

所以不知道出了什么问题。因为我是xml和JDOM的新手。请帮我解决这个问题。

java xml web-services jdom

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

使用JDOM使用单引号保存XML文件

我必须使用Java修改XML文件中的一些属性.输入XML具有用单引号括起的所有属性值.

但是在对文档进行所有更改后,当我将文档保存到XML文件中时,所有属性值都被双引号括起来.

XMLOutputter xmlOutput = new XMLOutputter();
xmlOutput.output(doc, new FileWriter(path));
Run Code Online (Sandbox Code Playgroud)

有什么方法可以让输出器使用单引号?

谢谢

java jdom

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

为什么XPath.selectNodes(context)总是在JDOM中使用整个文档

我试图在几个不同的上下文中运行相同的查询,但我总是得到相同的结果.这是一个示例xml:

<root>
<p>
  <r>
    <t>text</t>
  </r>
</p>
<t>text2</t>
</root>
Run Code Online (Sandbox Code Playgroud)

所以这就是我正在做的事情:

final XPath xpath = XPath.newInstance("//t");

List<Element> result = xpath.selectNodes(thisIsThePelement); 
// and I've debuged it, it really is the <p> element
Run Code Online (Sandbox Code Playgroud)

我总是<t>在结果列表中得到这两个元素.我只需要在<t>里面<p>我传递的XPath对象.

任何想法都会有很大的帮助,谢谢.

java xml xpath jdom

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

org.jdom.IllegalAddException:内容已经有一个现有的父"root"

我正在尝试使用jDOM拆分一个大的XML文件(500mb)(我知道我应该尝试SAX但是......)但是我得到的是org.jdom.IllegalAddException:内容已经有一个现有的父"root"异常,如图所示在下面的代码中.

示例xml和代码如下.我相信所有索引检查和其他琐碎的东西是正确的.

谢谢!!!

首先抱歉大量的代码.

<root>
  <metadata><md1>...</md1><md2>...</md2><metadata>
  <someOtherInfo><soi_1>...</soi_1></someOtherInfo>
  <collection>
    <item id="1">...</item><item id="2">...</item><item id="2">...</item>
  </collection>
</root>

split() {
    final String[] nodeNames = XmlUtils.getNodeNames(elementXpath); // returns {root, collection, item}

    // creates tree of 
    //<root>
    //  <metadata><md1>...</md1><md2>...</md2><metadata>
    //  <someOtherInfo><soi_1>...</soi_1></someOtherInfo>
    //  <collection>

    final Element originalDestination = importNodes(sourceDocument, nodeNames);  

    Element destination = null;

    // traverses to "collection" element
    Element source = sourceDocument.getRootElement();
    for (int tempCount = 1; tempCount < nodeNames.length - 1; ++tempCount) {
        source = source.getChild(nodeNames[tempCount]);
    }

    // get all "collection/item" elements
    for (Object obj …
Run Code Online (Sandbox Code Playgroud)

java xml split jdom

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

使用jdom设置命名空间

我想在xml中使用这种格式:

<ns2: test xmlns="url" xmlns:ns2="url2" xmlns:ns3="url3">
....
</ns2: test>
Run Code Online (Sandbox Code Playgroud)

我使用以下代码:

    Namespace ns= Namespace.getNamespace("url");
    Namespace ns2 = Namespace.getNamespace("ns2", "url2");
    Namespace ns3= Namespace.getNamespace("ns3", "url3");

    SAXBuilder vDocBuilder = new SAXBuilder();
    Document vDocument = vDocBuilder.build(File);

    System.out.println("Root element " + vDocument.getRootElement().getName());

    org.jdom.Element test = new org.jdom.Element("test", ns);
    vDocument.setRootElement(test);
    vNewRootElement.addNamespaceDeclaration(ns2);
    vNewRootElement.addNamespaceDeclaration(ns3);
Run Code Online (Sandbox Code Playgroud)

如果我设置名称空间:

    vNewRootElement.setNamespace(ns3);
Run Code Online (Sandbox Code Playgroud)

然后我得到了

    <ns2: test xmlns:ns2="url2" xmlns:ns3="url3"> ... </ns2: test> 
without the default namespace xmlns="url".
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我为什么它不起作用,有没有办法解决这个问题?

谢谢,哈纳

java xml-namespaces jdom

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

如何在Java中使用Jdom更改xml内部节点的值

-我已经参照此链接试图用JDOM的帮助下改变XML值http://www.mkyong.com/java/how-to-modify-xml-file-in-java-jdom/

样本中显示的xml:

<?xml version="1.0" encoding="UTF-8"?>
<company>
  <staff id="1">
    <firstname>yong</firstname>
    <lastname>mook kim</lastname>
    <nickname>mkyong</nickname>
    <salary>5000</salary>
  </staff>
</company>
Run Code Online (Sandbox Code Playgroud)

我不清楚如何处理以下xml场景:

<?xml version="1.0" encoding="UTF-8"?>
<company>
  <staff>
    <firstname>yong</firstname>
    <lastname>mook kim</lastname>
    <nickname>mkyong</nickname>
    <salary>
        <basic>1000</basic>
        <hra>150</hra>
   </salary>
  </staff>
  <staff>
    <firstname>sanjay</firstname>
    <lastname>machani</lastname>
    <nickname>chong</nickname>
    <salary>
        <basic>2000</basic>
        <hra>200</hra>
   </salary>
  </staff>
</company>
Run Code Online (Sandbox Code Playgroud)

我的职员标签不会有身份证,我也会有薪水的孩子标签。但是我需要使用Java在xml中更改sanjay(firstname)的薪水。

任何的意见都将会有帮助。

java xml jdom

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

使用xpath和jdom选择节点

我有一个xform文档

<?xml version="1.0" encoding="UTF-8"?><h:html xmlns:h="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/1999/xhtml"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:jr="http://openrosa.org/javarosa">
<h:head>
    <h:title>Summary</h:title>
    <model>
        <instance>
            <data vaultType="nsp_inspection.4.1">
                <metadata vaultType="metadata.1.1">
                    <form_start_time type="dateTime" />
                    <form_end_time type="dateTime" />
                    <device_id type="string" />
                    <username type="string" />
                </metadata>
                <date type="date" />
                <monitor type="string" />
            </data>
        </instance>
    </model>
</h:head>
Run Code Online (Sandbox Code Playgroud)

我想使用xpath和jdom从xform中选择数据元素

XPath xpath = XPath.newInstance("h:html/h:head/h:title/");
Run Code Online (Sandbox Code Playgroud)

似乎工作正常,并选择标题元素,但

XPath xpath = XPath.newInstance("h:html/h:head/model");
Run Code Online (Sandbox Code Playgroud)

不选择模型元素.我想这与命名空间有关.

java xml xpath jdom javarosa

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

标签 统计

java ×10

jdom ×10

xml ×8

xpath ×2

dom ×1

javarosa ×1

split ×1

w3c ×1

web-services ×1

xml-namespaces ×1