Play Framework: сопоставление без учета регистра в play.libs.XPath - PullRequest
1 голос
/ 08 февраля 2012

Play Framework предоставляет отличный объект XPath для обработки документов XML. Например, чтобы выбрать foobar узлы из XML-документа, вы можете использовать

List<Node> nodes = XPath.selectNodes(".//foobar", xmlDocument);

Однако, это чувствительно к регистру (как и ожидалось), поэтому, если бы вы запустили тот же запрос в документе xml, в котором вместо этого были элементы с именем fooBar, узлы не были бы найдены.

Посредством своих поисков в Google я обнаружил, что поиск без учета регистра можно сделать, введя имя узла в нижнем регистре:

.//[lower-case(@foobar)]

Кто-нибудь знает, как я применил бы это для работы с XPath lib ?

Play Framework для Play Framework

1 Ответ

1 голос
/ 08 февраля 2012

Я не знаю, что конкретно поддерживает Play, но у вас есть пара вариантов.Во-первых, если Play поддерживает XPath 2.0, затем используйте lower-case:

//*[lower-case(local-name())='foo']

Если lower-case не поддерживается, то используйте функцию XPath 1.0 translate для имитации:

//*[translate(local-name(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 
                            'abcdefghijklmnopqrstuvwxyz')='foo']
...