Domanda

Sto cercando di analizzare il linguaggio HTML usando NekoHTML .

Il problema è che quando il frammento di codice di seguito viene eseguito sul SUN JDK 1.5.0_01 funziona benissimo (questo è quando io sto usando Eclipse con Sun JRE). Ma quando la stessa cosa viene eseguito su IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Windows XP x86-32 j9vmwi3223ifx-20070323 (JIT enabled) allora non funziona (questo è quando io sto usando IBM RAD per lo sviluppo).

NodeList tags = doc.getElementsByTagName("td"); 

for (int i = 0; i < tags.getLength(); i++) 
{
 Element elem = (Element) tags.item(i);
 // do something with elem
}

Per funzionare bene voglio dire che sto ottenendo una lista di elementi "TD", che posso elaborare ulteriormente. Nel caso del J9 non sto entrando il ciclo for.

Sto usando la versione più recente di NekoHTML (insieme con i vasi xerces in bundle). Il doc nel codice sopra è di tipo org.w3.dom.Document (classe runtime utilizzata è org.apache.html.dom.HTMLDocumentImpl)

I dettagli IBM J9 sono i seguenti:

java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build pwi32devifx-20070323 (ifix 117674: SR4 + 116644 + 114941 + 116110 + 114881))
IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Windows XP x86-32 j9vmwi3223ifx-20070323 (JIT enabled)
J9VM - 20070322_12058_lHdSMR
JIT  - 20070109_1805ifx3_r8
GC   - WASIFIX_2007)
JCL  - 20070131

Qualsiasi idea, suggerimento o soluzione è apprezzato. Grazie.

È stato utile?

Soluzione

Ho 2 idee.

  1. Ho appena verificato che xerces è una parte dell'installazione di JRE, quindi credo che arriva al classpath dell'applicazione da lì. Probabilmente SUN e IBM si mettono diverse versioni di xerces. Così, come un primo approccio controllare e probabilmente provare a sostituire quello che hai sotto IBM alla versione del Sole. Se aiuta avete 2 opzioni: continuare l'esecuzione IBM Java con xerces da Sun o continuare a indagare su ciò che c'è di sbagliato con xerces da IBM
  2. .
  3. Ci sono altre differenze tra il dev e ambienti di produzione? Sono questi gli stessi sistemi operativi? È una possibilità che si sta utilizzando (per esempio) le finestre per lo sviluppo e UNIX per la produzione, ma il vostro XML è scritto su Windows con \ r \ n come una nuova linea? O anche di più: se il XML contiene caratteri Unicode e scritto in Windows Può contenere speciale (invisibile) prefisso che indica che si tratta unicode. Questo prefisso può causare parser al sicuro.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top