Ho un file HTML (da Newegg) e il loro HTML è organizzato come di seguito. Tutti i dati nella loro tabella delle specifiche sono ‘ desc ‘ mentre i titoli di ogni sezione sono in ‘ nome. ‘Di seguito sono riportati due esempi di dati delle pagine di Newegg.
Brand Intel Series Core i5 Cores 4 Socket LGA 1156
Brand AMD Series Phenom II X4 Cores 4 Socket Socket AM3
Alla fine mi piacerebbe avere una class per una CPU (che è già impostata) che consiste in un tipo di marca, serie, core e socket per memorizzare ciascuno dei dati. Questo è l’unico modo in cui posso pensare di fare questo:
- XPath: come selezionare il nodo con qualche attributo per indice?
- Come ignorare lo spazio dei nomi quando si selezionano i nodes XML con XPath
- Posso usare un Regex in un'espressione XPath?
- XPath per selezionare l'elemento in base al valore figlio di childs
- Come leggere XML usando XPath in Java
if(parsedDocument.xpath(tr/td[@class="name"])=='Brand'): CPU.brand = parsedDocument.xpath(tr/td[@class="name"]/nextsibling?).text
E facendo questo per il resto dei valori. Come potrei realizzare il nextsibling e c’è un modo più semplice per farlo?
Come potrei realizzare il nextsibling e c’è un modo più semplice per farlo?
Puoi usare :
tr/td[@class='name']/following-sibling::td
ma preferirei usare direttamente :
tr[td[@class='name'] ='Brand']/td[@class='desc']
Ciò presuppone che :
-
Il nodo di contesto, rispetto al quale viene valutata l’espressione XPath, è il genitore di tutti gli elementi tr
– non mostrato nella domanda.
-
Ogni elemento tr
ha solo un td
con attributo di class
valutato 'name'
e solo un td
con attributo di class
valutato 'desc'
.
Prova l’asse following-sibling
( following-sibling::td
).
- XPath: seleziona il primo elemento con un attributo specifico
- Come prevenire l'iniezione XPath / XML in .NET
- Come si genera il percorso dell'elemento corrente in XSLT?
- SelectSingleNode restituisce null per il percorso del nodo xml noto come buono usando XPath
- XPath: seleziona tutti i fratelli seguenti fino a un altro fratello
- Come faccio a generare un elenco separato da virgola con XSLT / XPath?
- Come verificare un'espressione XPath nello strumento Chrome Developers o Firebug di Firefox?
- Come eseguire le one-liner XPath dalla shell?