XPath: Выберите первый элемент с определенным атрибутом

Поскольку я нашел этот вопрос, столкнувшись с той же проблемой (и документация Angular не обновляется на сегодняшний день), теперь вы можете использовать:

let blob = new Blob([response.arrayBuffer()], { type: contentType });

Другой обходной путь, если вы по какой-то причине находитесь на старой Версия Angular 2:

let blob = new Blob([(<any> response)._body], { type: contentType });
278
задан Wayne Burkett 2 December 2011 в 08:20
поделиться

2 ответа

используйте (/ bookstore / book [@ location = 'US']) [1]

Сначала будут получены элементы книги с атрибутом location, равным 'US' . Затем он выберет первый узел из этого набора. Обратите внимание на использование круглых скобок, которые требуются в некоторых реализациях.

(обратите внимание, что это не то же самое, что / bookstore / book [1] [@ location = 'US'] , если только первый элемент также не имеет этот атрибут местоположения )

408
ответ дан 23 November 2019 в 02:04
поделиться

Но если я точно не знаю, сколько компонентов я хочу создать, например, если это зависит от решения пользователя. Итак, как я могу объявлять компоненты динамически?

Ответ был предложен - самый простой способ - это список объектов (компонентов). TObjectList - самый простой в использовании (в элементах управления). Списки отличные!

  In Form1 Public
  MyList: TObjectList;
  procedure AnyButtonClick(Sender: TObject); 

// Вы можете усложниться и объявить // TNotifyevents и назначить их, но давайте не будем усложнять :) . . .

procedure Tform1.AnyButtonClick(Sender: TObject);
begin
  If Sender is TButton then
  begin
    Case Tbutton(Sender).Tag of 
    .
    .
    .
// Or You can use the index in the list or some other property 
// you have to decide what to do      
// Or similar :)
  end;
end;

procedure TForm1.BtnAddComponent(Sender: TObJect)
var
  AButton: TButton;
begin
  AButton := TButton.Create(self);
  Abutton. Parent := [Self], [Panel1] [AnOther Visual Control];
  AButton.OnClick := AnyButtonClick;
// Set Height and width and caption ect.
  .
  .
  . 
  AButton.Tag := MyList.Add(AButton);
end;

Список объектов может содержать любой визуальный объект или нет, но это дает вам дополнительные накладные расходы на сортировку, какие элементы являются какими - лучше иметь связанные списки, если вы хотите, например, несколько динамических элементов управления на одинаковых панелях.

Примечание : как и другие комментаторы, я, возможно, слишком упростил для краткости, но я надеюсь, что вы уловили идею. Вам нужен механизм для управления объектами после их создания, и списки отлично подходят для этого.

и с булевыми функциями XPath not () , true () и false () . Кроме того, вы можете заключать подвыражения в круглые скобки.

47
ответ дан 23 November 2019 в 02:04
поделиться
Другие вопросы по тегам:

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