Comment getElementById à l'aide de DOM?
Je suis une partie de la page HTML ci-dessous et souhaitez extraire le contenu de la balise div id est hiddenDivHL
à l'aide de DOM Parser:
Partie D'une Page HTML:
<div id='hiddenDivHL' style='display:none'>http://74.127.61.106/udayavaniIpad/details.php?home=0&catid=882&newsid=123069[InnerSep]http://www.udayavani.com/udayavani_cms/gall_content/2012/1/2012_1$thumbimg117_Jan_2012_000221787.jpg[InnerSep]ಯುವಜನತೆಯಿಂದ ಭವ್ಯಭಾರತ[OuterSep]
Jusqu'à présent j'ai utilisé le code ci-dessous mais je ne peux pas utiliser getElementById
.Comment faire?
DOM Parser:
try {
URL url = new URL("http://74.127.61.106/udayavaniIpad/details_android.php?home=1&catid=882&newsid=27593");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new InputSource(url.openStream()));
doc.getDocumentElement().normalize();
NodeList nodeList = doc.getElementsByTagName("item");
/** Assign textview array lenght by arraylist size */
name = new TextView[nodeList.getLength()];
website = new TextView[nodeList.getLength()];
category = new TextView[nodeList.getLength()];
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
name[i] = new TextView(this);
Element fstElmnt = (Element) node;
NodeList nameList = fstElmnt.getElementsByTagName("hiddenDivHL");
Element nameElement = (Element) nameList.item(0);
nameList = nameElement.getChildNodes();
name[i].setText("Name = "
+ ((Node) nameList.item(0)).getNodeValue());
layout.addView(name[i]);
}
} catch (Exception e) {
System.out.println("XML Pasing Excpetion = " + e);
}
/** Set the layout view to display */
setContentView(layout);
}
doc.getElementById("hiddenDivHL")
Si cela ne fonctionne pas, utilisez un vrai DOM.- docs.oracle.com/javase/1.4.2/docs/api/org/w3c/dom/...
- org.xml.sax.SAXParseException: Illégal: "<" à l'intérieur de la valeur de l'attribut (position:START_TAG <link rel='stylesheet' href= "no-cache" >@12:64 java.io.InputStreamReader@40573f30)
Vous devez vous connecter pour publier un commentaire.
XPath est à mon humble avis la plus courante et la plus simple façon de naviguer dans le DOM en Java.
Je ne sais pas si l'expression XPath est droit, mais le lien est ici: http://developer.android.com/reference/javax/xml/xpath/package-summary.html
Il y a 2 différences entre getElementById et getElementsByName:
Votre code semble enfreindre ces deux exigences, vous semblez passer par une boucle de nœuds et de s'attendre à un hiddenDivHL id sur chaque nœud de la liste. Si l'id n'est pas unique. Deuxième racine de votre point n'est pas le document, mais la racine de chaque nœud dans la liste.
Si vous savez que vous avez une seule instance id essayez document.getElementById.
Je n'ai pas vraiment la question.
a) entendez-vous obtenir plus d'éléments dans le document.getElementById ("hiddenDivHL')?
b) Si vous voulez juste pour attraper cet élément?
document.getElementById('hiddenDivHL')
pour l'élément resp.document.getElementById('hiddenDivHL').innerHTML
Vous devez appeler
fstElmnt.getElementsByTagName("div");
pour obtenir tous div éléments et de vérifier si l'attribut id est égalhiddenDivHL
.La façon la plus simple je pense est d'utiliser jSoup de la bibliothèque, ce qu'il fait est d'analyser les DOM pour vous et vous permet de sélectionner des éléments à l'aide d'une feuille de style css (ou jquery style) sélecteur.
dans cet exemple, vous devriez faire quelque chose comme ceci
Pourquoi vous ne parvenez pas à utiliser getElementById()? C'est dans JavaSE 7 et JavaSE6/5/1.4.2 "le DOM Niveau 2".
Pour obtenir le contenu d'un élément en JavaScript:
Voir votre exemple sur jsfiddle.
Je pense que la confusion est due au fait que votre question est balisé en JavaScript, mais le code que vous avez posté est de Java. Ils sont des langues différentes, et le JavaScript les gens ne seront confus par l'analyseur. Je n'ai pas utilisé de Java dans les années donc je ne peux pas vraiment vous aider.