Question

Je suis en train d'analyser certains HTML en utilisant NekoHTML .

Le problème est que lorsque l'extrait ci-dessous le code est exécuté sur le SUN JDK 1.5.0_01 il fonctionne très bien (ce qui est quand je suis en utilisant Eclipse avec le soleil jre). Mais quand la même chose est exécuté sur IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Windows XP x86-32 j9vmwi3223ifx-20070323 (JIT enabled) alors il ne fonctionne pas (ce qui est quand je suis en utilisant IBM RAD pour le développement).

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

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

En travaillant bien je veux dire que je reçois une liste d'éléments « td » que je peut aller plus loin. En cas de J9 Je ne suis pas entrer dans la boucle de for.

J'utilise toute dernière version de NekoHTML (ainsi que les pots Xerces fournis). Le doc dans le code ci-dessus est de type org.w3.dom.Document (la classe d'exécution utilisé est org.apache.html.dom.HTMLDocumentImpl)

Les détails IBM J9 sont les suivants:

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

Toute idée, suggestion ou solution de contournement est appréciée. Merci.

Était-ce utile?

La solution

J'ai 2 idées.

  1. Je viens de vérifier que Xerces est une partie de l'installation de JRE, donc je crois qu'il arrive au classpath de votre application à partir de là. Probablement SUN et IBM vous apporter différentes versions de Xerces. Ainsi, en première approche le vérifier et probablement essayer de remplacer ce que vous avez sous IBM à la version du Soleil. Si cela vous aide avez 2 options: continuer à fonctionner avec IBM Java xerces de SUN ou de continuer à enquêter sur ce qui ne va pas avec Xerces d'IBM
  2. .
  3. Y at-il d'autres différences entre votre dev et les environnements de production? Sont-ils les mêmes systèmes d'exploitation? Est-il une chance que vous utilisez (par exemple) les fenêtres pour le développement et la production unix pour mais votre xml est écrit sous Windows avec \ r \ n en tant que nouvelle ligne? Ou encore plus: si votre XML contient des caractères unicode et écrit dans les fenêtres, il peut contenir préfixe spécial (invisible) qui indique que ce unicode. Ce préfixe peut provoquer l'analyseur à l'échec.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top