java Требуется помощь, чтобы заменить содержимое тега XML из CSV - PullRequest
0 голосов
/ 09 мая 2020

Я пытаюсь прочитать из файлов csv и заменить содержимое элемента xml значениями из CSV на основе заголовка CSV, помещенного между тегами XML.

toName, fromName, заголовок , тело Джон, Элвис, содержание заголовка, содержание тела Кан, Элвис, содержание заголовка, содержание тела Джуд, Элвис, содержание заголовка, содержание тела

<note>
<to>{{toName}}</to>
<from>{{fromName}}</from>
<heading>{{heading}}</heading>
<body>{{body}</body>
</note>

Кто-нибудь может подсказать, как это сделать.

Заранее спасибо.

1 Ответ

0 голосов
/ 09 мая 2020

Похоже, вы можете использовать jackson mapper для работы с xml и CSV

https://github.com/FasterXML/jackson-dataformats-text/tree/master/csv

<dependency>
  <groupId>com.fasterxml.jackson.dataformat</groupId>
  <artifactId>jackson-dataformat-csv</artifactId>
  <version>2.8.8</version>
</dependency>

<dependency>
  <groupId>com.fasterxml.jackson.dataformat</groupId>
  <artifactId>jackson-dataformat-xml</artifactId>
  <version>2.10.1</version>
</dependency>



ObjectMapper xmlMapper = new XmlMapper();
Simple value = xmlMapper.readValue("<Simple><x>1</x><y>2</y></Simple>", Simple.class);

// Schema from POJO (usually has @JsonPropertyOrder annotation)
CsvSchema schema = mapper.schemaFor(Pojo.class);

// Manually-built schema: one with type, others default to "STRING"
CsvSchema schema = CsvSchema.builder()
        .addColumn("firstName")
        .addColumn("lastName")
        .addColumn("age", CsvSchema.ColumnType.NUMBER)
        .build();

// Read schema from the first line; start with bootstrap instance
// to enable reading of schema from the first line
// NOTE: reads schema and uses it for binding
CsvSchema bootstrapSchema = CsvSchema.emptySchema().withHeader();
ObjectMapper mapper = new CsvMapper();
mapper.readerFor(Pojo.class).with(bootstrapSchema).readValue(json);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...