Используя верхний регистр и нижний регистр xpath функционирует в селене IDE

Во-первых, карты, как гарантируют, будут стабильны; т.е. итераторы не делаются недействительным вставкой элемента или удалением (кроме элемента, удаляемого, конечно).

Однако устойчивость итератора не гарантирует устойчивости указателей! Хотя это обычно происходит, что большинство реализаций использует указатели - по крайней мере, на некотором уровне - для реализации итераторов (что означает, что довольно безопасно предположить, что решение будет работать), , что необходимо действительно сохранить, сам итератор .

то, Что Вы могли сделать, создают маленький объект как:

struct StringPtrInMap
{
  typedef std::map<string,string>::iterator iterator;
  StringPtrInMap(iterator i) : it(i) {}
  const string& operator*() const { return it->first; }
  const string* operator->() const { return &it->first; }
  iterator it;
}

И затем хранят это вместо указателя строки.

25
задан Dai 6 July 2018 в 06:04
поделиться

2 ответа

upper-case() and lower-case() are XPath 2.0 functions. Chances are your platform supports XPath 1.0 only.

Try:

translate('some text','abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')

which is the XPath 1.0 way to do it. Unfortunately, this requires knowledge of the alphabet the text uses. For plain English, the above probably works, but if you expect accented characters, make sure you add them to the list.

55
ответ дан 28 November 2019 в 20:33
поделиться

Если вам понадобится верхний регистр в нескольких местах в вашем xslt, вы можете определить переменные для нижнего и верхнего регистра, а затем использовать их в вашей переводческой функции везде. Это должно сделать ваш xslt намного чище.

Пример по XSL/XPATH : В MSXML 4.0 нет функции верхнего регистра ?

2
ответ дан 28 November 2019 в 20:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: