Хороший способ получить что-то вроде необязательных параметров - это использовать переменные аргументы. Функция фактически получает фрагмент любого типа, который вы укажете.
func foo(params ...int) {
fmt.Println(len(params))
}
func main() {
foo()
foo(1)
foo(1,2,3)
}
Используйте вместо него // цвет [@index = '{0}']
. Знак @ означает "атрибут".
Замечу, что вы, кстати, используете дословный строковый литерал - знак @ в начале строки. В этом случае нет необходимости - в строке нет обратной косой черты, и она не многострочная. Вам также не нужно явно вызывать ToString
на проценте
- он будет преобразован автоматически.
string xpath = string.Format("//color[@index='{0}']", percentage);
Кстати, для тех из нас, кто не говорит на родном XPath, есть много онлайн-площадок для XPath которые позволяют писать выражения XML и XPath и просматривать результаты в Интернете.
Всякий раз, когда я оказываюсь в « XPath hell », я обычно иду на эти игровые площадки и пробую различные комбинации, пока не получу свои (необходимые) результаты, по какой-то причине это работает быстрее чем писать тестовую программу на C # / Python или даже запускать эти раздутые так называемые редакторы XML.