Вам нужно будет перейти к своей модели данных и добавить новый вычисляемый столбец в соответствующую таблицу, которая объединяет три столбца. Используйте этот новый столбец в качестве поля в вашем слайсере.
SlicerData = [column1] & ", " & [column2] & ", " & [column3]
Однако, в большинстве случаев вы получаете гораздо больше гибкости, имея три разных слайсера, по одному для каждого столбца. Не говоря уже о трех слайсерах по 10 штук в каждом, гораздо удобнее, чем один слайсер с 1000 штуками.
Есть несколько приемов, которые можно использовать для очистки высокопрогнозируемых структур, таких как таблицы. Перед запуском HTML tidy вы можете использовать Regex или что-то еще для поиска Настоящая загадка - это такие вещи, как нераскрытые Если вы открыты для других языков, таких как Python, Beautiful Soup отлично подходит для плохой реконструкции письменный HTML. Я только что попытался запустить ваш HTML через следующий фрагмент, и теперь он вполне читабелен. Может быть, вам больше повезет, если вы соберете нужные результаты, используя регулярные выражения, а не анализируете их как XML. I used xpath with Python's lxml library to parse IMDB Top 250 page. View the source for yourself to see how bad it is. The following code parses a saved IMDB Top 250 page ( Если вы ищете данные, я бы просто удалил все html и обработал их как строку необработанный ввод. Вы можете использовать функцию strip_tags .
и
, за которыми следуют другие
или
и вставьте соответствующий доводчик непосредственно перед ним. Есть некоторые хитрости для размещения таблиц внутри
, но нет ничего невозможного для обработки. Просто начните с поиска самой внутренней структуры и продвижения оттуда наружу.
, которые могут быть намного сложнее совпасть с их соответствующими (или отсутствующими) доводчиками. #!/usr/bin/env python
from BeautifulSoup import BeautifulSoup
html = "long string of html"
soup = BeautifulSoup(html)
print soup.prettify()
top250.html
) and stores the extracted information in a sqlite database (top250.db
)import sqlite3
from lxml import html
tree = html.parse('top250.html')
class TopMovie(object):
base_xpath = "/html/body/div/div[2]/layer/div[3]/table/tr/td[3]/div/table/tr/td/table/tr[%d]"
def __init__(self, num):
self.rank = num
self.xpath = self.base_xpath % (self.rank + 1)
def rating(self):
return tree.xpath(self.xpath + '/td[2]/font')[0].text
def link(self):
return tree.xpath(self.xpath + '/td[3]/font/a')[0].values()[0]
def title(self):
return tree.xpath(self.xpath + '/td[3]/font')[0].text_content()
def votes(self):
return tree.xpath(self.xpath + '/td[4]/font')[0].text
def main():
conn = sqlite3.connect('top250.db')
conn.execute("""DROP TABLE IF EXISTS movies""")
conn.execute("""
CREATE TABLE movies (
id INTEGER PRIMARY KEY,
title TEXT,
link TEXT,
rating TEXT,
votes INTEGER
)""")
for n in xrange(1, 251):
m = TopMovie(n)
query = r'INSERT INTO movies VALUES (%d, "%s", "%s", "%s", "%s")' \
% (n, m.title(), m.link(), m.rating(), m.votes().replace(',', ''))
conn.execute(query)
conn.commit()
conn.close()
if __name__ == "__main__":
main()
$clean = strip_tags($input);
// example: <p>Test paragraph.</p> <a href="#fragment">Other text</a>
// returns: Test paragraph. Other text
Похожие вопросы: