Я, честно говоря, не вижу смысла, к которому вы пытаетесь обратиться, я подозреваю, что вам просто нужна перегрузка функций:
void func(int value)
{
// Some code working with int
}
void func(string value)
{
// Some code working with string
}
void f()
{
func(42); // calls the first variant
func(string{}); // calls the second variant
}
Нет необходимости передавать дополнительный аргумент, чтобы указать, что это за тип
В зависимости от Вашей точной ситуации существуют различные выражения XPath, которые выберут узел, значение которого содержит некоторый пробел.
Во-первых, давайте вспомним, что любой из этих символов является "пробелом":
	
- Вкладка


- новая строка

- возврат каретки
' '
или  
- пространство
Если Вы знаете точное значение узла, говорите, что это"Hello World
"с пространством, затем самое прямое выражение XPath:
/top/aChild[. = 'Hello World']
выберет этот узел.
Трудности с определением значения, которое содержит пробел, однако, прибывают из того, что мы видим все пробельные символы так же, как... хорошо, пробел и не знаем, является ли это группой пробелов или единственной вкладки.
В XPath 2.0 можно использовать регулярные выражения, и они предоставляют простое и удобное решение. Таким образом мы можем использовать выражение XPath 2.0 в качестве того ниже:
/*/aChild[matches(., "Hello\sWorld")]
выбрать любого ребенка главного узла, значение которого является строкой, "Привет" сопровождаемой пробелом, сопровождаемым строкой "Мир". Отметьте использование matches()
функционируйте и"\s
"шаблон, который соответствует пробелу.
В XPath 1.0 удобный тест, если данная строка содержит какие-либо пробельные символы:
not(string-length(.)= stringlength(translate(., ' 	

','')))
Здесь мы используем translate()
функция, чтобы устранить любой из этих четырех пробельных символов и сравнить длину получившей строки к той из исходной строки.
Так, если в текстовом редакторе значение узла отображено как
"Привет Мир",
мы можем безопасно выбрать этот узел с выражением XPath:
/*/aChild[translate(., ' 	

','') = 'HelloWorld']
Во многих случаях мы можем также использовать функцию XPath normalize-space()
, который от его аргумента строки производит другую строку, в которой группы продвижения и запаздывающего пробела сокращается, и каждый пробел в строке заменяется одиночным пробелом.
В вышеупомянутом случае мы будем просто использовать следующее выражение XPath:
/*/aChild[normalize-space() = 'Hello World']
Попробуйте любого это:
/Root/Child[normalize-space(text())=value without spaces]
или
/Root/Child[contains(text(),value without spaces)]
или (так как это похоже, Ваше тестовое значение может быть проблемой),
/Root/Child[normalize-space(text())=normalize-space(value with spaces)]
На самом деле не выполнили ни одного из них так, синтаксис может быть wonky.
я погуглил это как на второй ссылке:
попытайтесь заменить пространство с помощью "x0020"
это, кажется, работает на парня.