I have a ~2 MB html
file that I need to parse that contains about 500 rows and about 70 columns. I need to clean it up obviously in a way that I can later enter it into a SQL Server database. I have parsed files in the past with Perl but never an html
file and I was wondering if there are any modules I should check out before I do plain matching and formatting.
A little update:
<td class="tableHeaderDarkCenter">CUSIP/ISIN</td>
<td class="tableHeaderDarkCenter">Stock Ticker</td>
<td class="tableHeaderDarkCenter">MLCC Code</td>
<td class="tableHeaderDarkCenter">Bond Ticker</td>
<td class="tableHeaderDarkCenter">Issuer Name</td>
<td class="tableHeaderDarkCenter">Convertible Price(USD)</td>
<td class="tableHeaderDarkCenter">Par Amount</td>
<td class="tableHeaderDarkCenter">Coupon</td>
<td class="tableHeaderDarkCenter">Maturity/Mandatory Conversion Date</td>
<td class="tableHeaderDarkCenter">Outstanding Amt ($MM)</td>
<td class="tableHeaderDarkCenter">Bonds/Shrs Outstanding</td>
<td class="tableHeaderDarkCenter">Market Value($MM)</td>
<td class="tableHeaderDarkCenter">Index Weight(%)</td>
<td class="tableHeaderDarkCenter">YTM(%)</td>
<td class="tableHeaderDarkCenter">YTP(%)</td>
<td class="tableHeaderDarkCenter">Greater of YTM/YTP(%)</td>
<td class="tableHeaderDarkCenter">Duration</td>
<td class="tableHeaderDarkCenter">Currency</td>
<td class="tableHeaderDarkCenter">Country</td>
<td class="tableHeaderDarkCenter">Series</td>
<td class="tableHeaderDarkCenter">Accrued Interest</td>
<td class="tableHeaderDarkCenter">Current Yield(%)</td>
<td class="tableHeaderDarkCenter">Yield Advantage(%)</td>
<td class="tableHeaderDarkCenter">Moody Rating</td>
<td class="tableHeaderDarkCenter">S&P Rating</td>
<td class="tableHeaderDarkCenter">Avg. Rating</td>
<td class="tableHeaderDarkCenter">Internal Rating</td>
<td class="tableHeaderDarkCenter">Collateral Type</td>
<td class="tableHeaderDarkCenter">Status</td>
<td class="tableHeaderDarkCenter">Security Type</td>
<td class="tableHeaderDarkCenter">Announce Date</td>
<td class="tableHeaderDarkCenter">Issue Date</td>
<td class="tableHeaderDarkCenter">At-Issue Yield</td>
<td class="tableHeaderDarkCenter">At-Issue Prem</td>
<td class="tableHeaderDarkCenter">Delta</td>
<td class="tableHeaderDarkCenter">Gamma</td>
<td class="tableHeaderDarkCenter">RHO</td>
<td class="tableHeaderDarkCenter">Theoretical Value</td>
<td class="tableHeaderDarkCenter">Theoretical Discount (%)</td>
<td class="tableHeaderDarkCenter">Cheap (%)</td>
<td class="tableHeaderDarkCenter">Conversion Ratio</td>
<td class="tableHeaderDarkCenter">Parity Cash Adjustment</td>
<td class="tableHeaderDarkCenter">Payback</td>
<td class="tableHeaderDarkCenter">Implied Volatility(%)</td>
<td class="tableHeaderDarkCenter">Implied Spread</td>
<td class="tableHeaderDarkCenter">Parity Delta</td>
<td class="tableHeaderDarkCenter">Conversion Premium(%)</td>
<td class="tableHeaderDarkCenter">Investment Value Premium(%)</td>
<td class="tableHeaderDarkCenter">Investment Value(Bond floor)</td>
<td class="tableHeaderDarkCenter">Price to Par</td>
<td class="tableHeaderDarkCenter">Next Put Date</td>
<td class="tableHeaderDarkCenter">Yrs to Put</td>
<td class="tableHeaderDarkCenter">Yrs to Mat/Mand Conv Date</td>
<td class="tableHeaderDarkCenter">Yrs to Mat/Yrs to Put</td>
<td class="tableHeaderDarkCenter">Years to Call</td>
<td class="tableHeaderDarkCenter">1-Day Total Return(%)</td>
<td class="tableHeaderDarkCenter">1-WK Total Return(%)</td>
<td class="tableHeaderDarkCenter">MTD Total Return(%)</td>
<td class="tableHeaderDarkCenter">QTD Total Return(%)</td>
<td class="tableHeaderDarkCenter">YTD Total Return(%)</td>
<td class="tableHeaderDarkCenter">Index Sector</td>
<td class="tableHeaderDarkCenter">Industry</td>
<td class="tableHeaderDarkCenter">CS Sector L1</td>
<td class="tableHeaderDarkCenter">CS Sector L2</td>
<td class="tableHeaderDarkCenter">CS Sector L3</td>
<td class="tableHeaderDarkCenter">CS Sector L4</td>
<td class="tableHeaderDarkCenter">CS Sector L5</td>
<td class="tableHeaderDarkCenter">ML Sector L1</td>
<td class="tableHeaderDarkCenter">ML Sector L2</td>
<td class="tableHeaderDarkCenter">ML Sector L3</td>
<td class="tableHeaderDarkCenter">ML Sector L4</td>
<td class="tableHeaderDarkCenter">GIC Sector</td>
<td class="tableHeaderDarkCenter">GIC Industry Group</td>
<td class="tableHeaderDarkCenter">GIC Industry</td>
<td class="tableHeaderDarkCenter">GIC Sub Industry</td>
<td class="tableHeaderDarkCenter">Bloomberg Sector</td>
<td class="tableHeaderDarkCenter">Stock Price(USD)</td>
<td class="tableHeaderDarkCenter">Stock Yield</td>
<td class="tableHeaderDarkCenter">1-Day Equity Total Return(%)</td>
<td class="tableHeaderDarkCenter">1-WK Equity Total Return(%)</td>
<td class="tableHeaderDarkCenter">MTD Equity Total Return(%)</td>
<td class="tableHeaderDarkCenter">QTD Equity Total Return(%)</td>
<td class="tableHeaderDarkCenter">YTD Equity Total Return(%)</td>
<td class="tableHeaderDarkCenter">Eq Mkt Value($MM)</td>
This is what occurs in the file and from the end of this until the end of the file are the corresponding values that map to the column names. Obviously a lot. I'm giving the HTML::TableExtract
a shot, but I'm not sure if it is right for the situation.