Как искать данную строку в XML?

У меня есть XML как:

<bodyText>
  <1 beginIndex="0" endIndex="723">
    The teddy bear is a soft toy in the form of a bear. Teddy bears are among the most popular gifts for children and are often given to adults to signify love, congratulations or sympathy.</1>

<2 beginIndex="724" endIndex="347">
    Morris Michtom saw the drawing of Roosevelt and was inspired to create a new toy. He created a little stuffed bear cub and put it in his shop window with a sign that read "Teddy's bear," after sending a bear to Roosevelt and receiving permission to use his name. 
</2>
</bodyText>

Как мне найти конкретную строку в XML? Например: если пользователь вводит "чертеж Рузвельта". 2-й элемент xml содержит эту строку, и он должен возвращать 2(он должен возвращать абзац №). Как узнать?

1 ответ

Решение

Конвертируйте xml во внутренний класс, давайте назовем его MyEntry, у которого есть id (значения 1 и 2 в вашем примере, но укажите их как атрибут, имя узла не имеет значения, введите "a"), beginIndex, endIndex и value (ваша строка) и поместите в него метод внутри MyEntry, например:

public function search( string:String ):Boolean
{
    return value.indexOf( string ) != -1;
}

//When you search for the string "drawing of Roosevelt":
for each( var entry:MyEntry in entries )
{
    if( entry.search( string ) )
    {
       trace( "Found!" );
       break;
    }
}
Другие вопросы по тегам