XElement: набор всех листов?

Класс быстрой строки не предоставляет возможности получить символ по определенному индексу из-за его собственной поддержки символов UTF. Переменная длина символа UTF в памяти делает невозможным переход непосредственно к символу. Это означает, что вы должны вручную зацикливать строку каждый раз.

Вы можете расширить String для предоставления метода, который будет циклически проходить по символам до нужного вам индекса

extension String {
    func characterAtIndex(index: Int) -> Character? {
        var cur = 0
        for char in self {
            if cur == index {
                return char
            }
            cur++
        }
        return nil
    }
}

myString.characterAtIndex(0)!
8
задан pistacchio 24 June 2009 в 15:34
поделиться

1 ответ

Является ли Descendants () , что вам нужно?

Он получит всех потомков - чтобы получить только листья, вы можете использовать LINQ to Objects с Where пункт:

element.Descendants()
       .Where(desc => !desc.Elements().Any());

(Обратите внимание, что это все еще только элементы, а не другие узлы, такие как текстовые узлы. Надеюсь, что все в порядке.)

10
ответ дан 5 December 2019 в 17:40
поделиться
Другие вопросы по тегам:

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