XPath для Парсинга “SRC” от тега img?

C++ 11: Да!

C++ 11 и вперед имеет эту ту же функцию (названный конструкторы делегирования ).

синтаксис немного отличается от C#:

class Foo {
public: 
  Foo(char x, int y) {}
  Foo(int y) : Foo('a', y) {}
};

C++ 03: Никакой

, К сожалению, нет никакого способа сделать это в C++ 03, но существует два способа моделировать это:

  1. можно объединиться два (или больше) конструкторы через параметры по умолчанию:

    class Foo {
    public:
      Foo(char x, int y=0);  // combines two constructors (char) and (char, int)
      // ...
    };
    
  2. Использование init метод для совместного использования общего кода:

    class Foo {
    public:
      Foo(char x);
      Foo(char x, int y);
      // ...
    private:
      void init(char x, int y);
    };
    
    Foo::Foo(char x)
    {
      init(x, int(x) + 7);
      // ...
    }
    
    Foo::Foo(char x, int y)
    {
      init(x, y);
      // ...
    }
    
    void Foo::init(char x, int y)
    {
      // ...
    }
    

См. запись FAQ C++ для ссылки.

26
задан dMix 24 July 2009 в 19:22
поделиться

2 ответа

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

//img[@class='photo-large']/@src

Дополнительные советы см. В W3 Schools . У них есть отличные руководства по таким вещам, а также отличный справочник.

67
ответ дан 28 November 2019 в 06:21
поделиться

Using Hpricot this works:

doc.at('//img[@class="photo-large"]')['src']

In case you have more than one image, the following gives an array:

doc.search('//img[@class="photo-large"]').map do |e| e['src'] end

However, Nokogiri is many times faster and it “can be used as a drop in replacement” for Hpricot.
Here the version for Nokogiri, in which this XPath for selecting attributes works:

doc.at('//img[@class="photo-large"]/@src').to_s

or for many images:

doc.search('//img[@class="photo-large"]/@src').to_a
9
ответ дан 28 November 2019 в 06:21
поделиться
Другие вопросы по тегам:

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