Что бы правильный способ найти строку, как это в большом XML:Regex XML строка
<ser:serviceItemValues>
<ord1:label>Start Type</ord1:label>
<ord1:value>Loop</ord1:value>
<ord1:valueCd/>
<ord1:activityCd>iactn</ord1:activityCd>
</ser:serviceItemValues>
первым в этом XML там будет много повторений элемента выше с различными значениями (Loop и т. Д.) И другие элементы xml в этом документе. В основном, что меня беспокоит, есть ли serviceItemValues, у которого нет «Loop», поскольку это значение. Я попробовал это, но это не похоже на работу:
private static Pattern LOOP_REGEX =
Pattern.compile("[\\p{Print}]*?<ord1:label>Start Type</ord1:label>[\\p{Print}]+[^(Loop)][\\p{Print}]+</ser:serviceItemValues>[\\p{Print}]*?", Pattern.CASE_INSENSITIVE|Pattern.MULTILINE);
Благодаря
Спасибо за все комментарии, позвольте мне пояснить, кто говорит, что не использовать регулярное выражение. Меня не волнует, что такое значение, я не пытаюсь его получить. Я просто хочу быть уверенным, что он говорит о цикле, если это не произойдет, я сделаю исключение. Поэтому я предполагаю, что это проверка, но я не могу изменить xsd. – arinte
Я считаю, что все понимают, что вы пытаетесь сделать. Однако регулярные выражения не являются лучшим решением. Разметку лучше всего оставить парсерам. – doomspork