Я пытаюсь проанализировать файл xhtml, используя xalan XPathAPI.Я застрял в следующем требовании.Вот фрагмент из xhtml
<table border="0" cellspacing="0" cellpadding="0" class="cmnt_message">
<tr>
<td width="33" align="right">
<span class="cmnt_baloon"><!-- Image --></span>
</td>
<td width="767" class="red pad_l_10">
Posted by Macha on Mar 06, 2011 at 01:02 PM
</td>
</tr>
<tr>
<td colspan="2" class="cmnt_text">
@rmaytee<br />
<br />
#2<br />
<br />
In 2011 it is possible to switch to old mat/map browser<br />
<br />
Just look around<br />
<br />
<a target="_blank" href=
"http://area.autodesk.com/forum/autodesk-3ds-max/autodesk-3ds-max--3ds-max-design-2011/material-editor/">area.autodesk.com/forum/autodesk-3ds-max/autodesk-3ds-max--3ds-max-design-2011/material-editor/</a><br />
<br />
<br />
<br />
</td>
</tr>
</table>
<table border="0" cellspacing="0" cellpadding="0" class="cmnt_message">
<tr>
<td width="33" align="right">
<span class="cmnt_baloon"><!-- Image --></span>
</td>
<td width="767" class="red pad_l_10">
Posted by rmaytee on Mar 02, 2011 at 06:04 PM
</td>
</tr>
<tr>
<td colspan="2" class="cmnt_text">
2 things:<br />
<br />
1- Please bring back "use object center as start snap point" in the snap settings. We have voiced our opinion about this, now please show us you care. <a target="_blank" href=
"http://www.the-area.com/forum/autodesk-3ds-max/autodesk-3ds-max--3ds-max-design-2011/use-object-center-as-start-snap-point">www.the-area.com/forum/autodesk-3ds-max/autodesk-3ds-max--3ds-max-design-2011/use-object-center-as-start-snap-point</a><br />
<br />
2- Make the Material/Map Browser the way it used to be. It is SO SLOW. At least make an option to switch to a "classic Material/Map Browser" or something.
</td>
</tr>
</table>
Здесь я столкнулся с несколькими проблемами.
- Я пытаюсь извлечь значения из класса cmnt_message.Одним из них является текст «Опубликовано ...» в первом блоке и текстовое содержимое в cmnt_text.Вот xpath для первого, отправленного частью
/ html: html / html: body // html: div [@ class = 'content_d'] / html: table [@ class = 'cmnt_message'] / html: tr [1] / html: td [2] / text ()
Это возвращает мне «Автор: Мача 06 марта 2011 г. в 13:02», и это то, что я хочу.Но когда я пытаюсь получить cmnt_text со следующим выражением xpath
/ html: html / html: body // html: div [@ class = 'content_d'] / html: table [@ class ='cmnt_message'] / html: tr [2] / html: td / text ()
Я получаю "@rmaytee", т.е. значение до первого,Я пытаюсь получить весь текст внутри cmnt_text.
Другая проблема заключается в том, что мне нужно перебрать cmnt_message и создать коллекцию объекта Message, состоящую из отправленных и комментариев.Не уверен, как выполнять итерации с помощью Xpath.
SAX2DOM sax2dom = new SAX2DOM ();p.setContentHandler (sax2dom);p.parse (новый InputSource (urlXML.openStream ()));Node doc = sax2dom.getDOM ();XObject comment = XPathAPI.eval (doc, commentPath);
Но это возвращает мне только первое вхождение класса cmnt_message.
Любой указатель будет высоко оценен.