Разбор HTML bodyText с использованием Javascript - PullRequest
0 голосов
/ 28 октября 2018

У меня есть электронное письмо в формате HTML, содержащее текст и таблицы, которые я пытаюсь проанализировать с помощью JavaScript.Синтаксический анализ текста работает очень хорошо, мне просто нужно запустить регулярное выражение, чтобы получить то, что мне нужно из содержимого, например:

var name     = mail.bodyText.match(/Name:\s*(.*)/);

Теперь часть таблицы довольно сложная.Допустим, таблица содержит 3 столбца, и я хочу получить данные только из первого столбца, в котором перечислены связанные данные.Когда я набираю следующее:

var column1Data = mail.bodyText.match(/Column1([\s\S]*?)/);
    if (column1Data) {
        var column1DataSplit = sources[1].split("\n");}
}

Данные не извлекаются.

Пример HTML-таблицы:

enter image description here

Есть идеи о том, как получить текст HTML-таблицы bodyText?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 28 октября 2018

Почему бы просто не найти строку имени в таблице?

var td = document.querySelectorAll('td:nth-child(1)');
for (var i in td) {
  var nameData = td[i].innerHTML
  if ( i > 0 && nameData ) // skip header row
  console.log(nameData)
}
0 голосов
/ 28 октября 2018

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

<table id="myTable">
  <tr>
    <td>r1c1</td>
    <td>r1c2</td>
  </tr>
  <tr>
    <td>r2c1</td>
    <td>r2c2</td>
  </tr>
</table>

<script type="text/javascript">
  var tds = document.querySelectorAll('td:nth-child(1)');
  for (td of tds) {
    console.log(td.innerHTML);
  }
</script>

Вывод на консоль:

"r1c1"
"r2c1"

https://codepen.io/rockysims/pen/NOJMap?editors=1011

...