2014-10-09 2 views
0

Я имеющих следующий HTML-код:CONCAT каждые два узла

<dl> 
    <dt>1</dt> 
    <dd>2</dd> 
    <dt>3</dt> 
    <dd>4</dd> 
    <dt>5</dt> 
    <dd>6</dd> 
    <dt>7</dt> 
    <dd>8</dd> 
</dl> 

Теперь я хочу, чтобы сцепить каждый dt и dd тег, является то, что возможно с помощью XPath 1.0? Таким образом, результаты должны быть:

12 
34 
56 
78 

Пробовал уже что-то подобное, но не получилось:

//*/dl[concat(dt/text(), ./following-sibling::node()/text())] 
+1

Не возможно с помощью XPath 1.0 насколько я могу видеть ... – har07

+0

Можете ли вы также использовать что-то в внешней среде XPath, например XSLT или Javascript или Java? В противном случае, я думаю, вам не повезло. – LarsH

+0

Слишком плохо, но теперь я начал работать. Пришлось работать с питоном, так что ... См. Мой ответ ниже. –

ответ

0

Понял работает, используя Python:

content = sel.xpath('//*/dl').extract() 

p = re.compile(ur'<dt[^>]*>(.*?)<\/dd[^>]*>') 

for s in p.findall(str(prod_specs)): 

    print BeautifulSoup(s).text 
Смежные вопросы