0

<class>JDOM2 を使用して、persistence.xml ファイルに新しい要素を追加しようとしています。

persistenceUnitEl.add(new Element("class").addContent(className));

問題は、jdom2 が常に要素を追加xmlns=""すること<class>です。

どうすればこれを防ぐことができますか?

removeAttribute("xmlns")機能しませんremoveNameSpace(el.getNameSpace())。また機能しません。

4

2 に答える 2

0

私の理解では、これがあなたの望むものだと思います。

<RootTagname xmlns="...some namespace....">
    <SubTag>
        <NewElement yourAttrib="1"/>
    </SubTag> 
</RootTagname >

これはあなたが得るものです。

<RootTagname xmlns="...some namespace....">
    <SubTag>
        <NewElement xmlns="" yourAttrib="1"/>
    </SubTag> 
</RootTagname >

以下のスニペットを使用して、新しい要素を作成します

Element newElement = new Element("NewElement", subElement.getNamespace());

これが完全なコードです。

Namespace namespace = Namespace.getNamespace("prefix", ".....some namespace....");
XPathBuilder<Element> subTagXpathelementBuilder = new XPathBuilder<Element>("//prefix:SubTag", Filters.element());
subTagXpathelementBuilder.setNamespace(namespace);
XPathFactory xpathFactory = XPathFactory.instance();

Document doc = (Document) builder.build(xmlFile);

XPathExpression<Element> xpath = subTagXpathelementBuilder .compileWith(xpathFactory);
List<Element> subElementsList = xpath.evaluate(doc);
for (Element subElement : subElementsList ) {
    Element newElement = new Element("NewElement", subElement.getNamespace());

    List<Attribute> newElementAttribList = newElement.getAttributes();
    newElementAttribList .add(new Attribute("yourAttrib", "1"));
    subElement .addContent(newElement);
} 
于 2015-08-14T06:41:19.327 に答える