Установка/добавление свойства в массив с использованием XMLPropertyListConfiguration с XPathExpressionEngineJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Установка/добавление свойства в массив с использованием XMLPropertyListConfiguration с XPathExpressionEngine

Сообщение Anonymous »

Я пытаюсь добавить/обновить свойство в файле .plist, используя спецификацию ключа XPath. Я тестировал файл, который выглядит следующим образом:

Код: Выделить всё




testProp

text
54
2023-11-09T16:29:34Z

objectProp

text
54
2023-11-09T16:29:34Z



и объект XMLPropertyListConfiguration, построенный следующим образом:

Код: Выделить всё

File file = new File("path/to/config.plist");
XMLPropertyListConfiguration configuration =
new FileBasedConfigurationBuilder(XMLPropertyListConfiguration.class)
.configure(new Parameters().xml()
.setFile(file)
.setExpressionEngine(new XPathExpressionEngine()))
.getConfiguration();

// do any changes, then save the file using:
FileHandler handler = new FileHandler(configuration);
handler.save(file);
Моя цель: отредактировать значение в одном из свойств массива или вставить в массив новое значение. Я думал, что Configuration.setProperty("/testProp[2]", "другая строка") приведет к следующему результату (некоторые части вырезаны для краткости):

Код: Выделить всё

testProp

text
a different string
2023-11-09T16:29:34Z

но вместо этого он добавил testProp[2] как собственное свойство:

Код: Выделить всё




testProp

text
54
2023-11-09T16:29:34Z

objectProp

text
54
2023-11-09T16:29:34Z

testProp[2]
a different string


Насколько я понимаю, вы используете предикат testProp[n] для указания n-го свойства/значения testProp, но здесь явно не тот случай. Есть ли что-то, что мне не хватает конкретно в массивах? Или мне придется прочитать testProp как список, изменить список, а затем сохранить весь список обратно как testProp? Лучшее решение, которое я ищу, - это что-то, что может включать всю необходимую информацию в строку XPath, но если мне нужно обрабатывать индекс в массиве отдельно, это тоже можно обработать.


Подробнее здесь: https://stackoverflow.com/questions/793 ... th-xpathex
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»