10

javax.xml.stream.XMLEventWriter空の要素が(明示的な開始要素と終了要素のペアの代わりに)書き込まれるように、内部またはjavax.xml.stream.XMLOutputFactory設定するオプションが表示されません。

Woodstox にはこれを行うプロパティがあるようですが、標準化されていません。

これを行う明白な方法がありませんか?

4

5 に答える 5

7
writer.writeEmptyElement("some_element");
writer.writeAttribute("some_attribute", "some_value");
于 2013-03-20T14:44:39.893 に答える
4

<x/>WoodStox API で動作するように空のタグが生成されるようにプロパティを設定します。

WstxOutputFactory factory = new WstxOutputFactory();
factory.setProperty(WstxOutputFactory.P_AUTOMATIC_EMPTY_ELEMENTS, true);

XML タグにインデントが必要でした。setIndentation メソッドは、javax.xml.stream.XMLOutputFactory と org.codehaus.stax2.XMLOutputFactory2 のどちらとも連携していません。

于 2010-07-14T16:15:42.550 に答える
3

いくつかの回答とコメントには、混乱があります。

StAX には 2 つの API があります。

  • XMLStreamReaderとを使用する「カーソル API」XMLStreamWriter。と
  • XMLEventReaderandを使用する「イテレータ API」XMLEventWriter

を使用してCursor APIを使用する<example/>、単一のタグ を持つ空の要素を出力できます。XMLStreamWriter

xmlStreamWriter.writeEmptyElement("example");

私の知る限り、 を使用したIterator API<example/>では、単一のタグ で空の要素を出力することはできません。この場合、次の 2 つのタグを持つ空の要素を作成することになります。XMLEventWriter<example></example>

xmlEventWriter.add(xmlEventFactory.createStartElement("", null, "example"));
xmlEventWriter.add(xmlEventFactory.createEndElement("", null, "example"));
于 2015-04-21T14:23:41.850 に答える
3

いいえ。 と の間<x/>に意味上の違いはなく<x></x>、標準 API はどちらか一方を要求する方法を提供しません。

于 2010-06-29T15:59:07.933 に答える
2

すでにご存知かもしれませんが、XMLStreamWriter には、「実際の」空の要素であることを指定するメソッドがあります。XMLEventWriter には、下位レベルのインターフェースにあるいくつかの要素がありません。

于 2010-07-10T16:05:41.960 に答える