Hej, jeg er helt ny i python og er i gang med mit først lille projekt, hvor jeg skal hente noget data fra et .xml som min gulvvarmestyring laver.
Men jeg er løbet lidt i lidt udfordringer..
I første omgang havde jeg en kopi af .xml på min samme mappe som mit python-script, men for at få det til at virke "rigtigt" skal jeg hente det fra et dokument der ligger på en ip-adresse.. "http://192.168.1.10/data/cyclic.xml"
hvordan går jeg det?
har prøvet at indsætte urlén i stedet for "file=xmltest.xml" men så læser jeg bare i den "string" jeg har indsat
kode:
import elementpath
from xml.etree import ElementTree as ET
tree = ET.ElementTree(file="xmltest.xml")
root = tree.getroot()
print(root)
på forhånd tak: )
python
Re: python
Du kan lave et GET-request til URL'en med modulet "requests" - der er et eksempel her: https://stackoverflow.com/questions/183 ... l-response
Re: python
Jeg kan ikke være med i Python da jeg ikke kender det, men tænkte jeg vil komme med et 5 minutters Java eksempel.
Måske det kan give lidt inspiration
XML filen er som sådan
Måske det kan give lidt inspiration
Kode: Vælg alt
import java.io.IOException;
import java.net.URL;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class Main {
public static void main(String[] args) {
Main m = new Main();
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db;
try {
db = dbf.newDocumentBuilder();
Document doc = db.parse(new URL("http://192.168.1.51/test.xml").openStream());
NodeList nl = doc.getChildNodes();
m.readXML(nl.item(0));
} catch (ParserConfigurationException | SAXException | IOException e) {
e.printStackTrace();
}
}
public void readXML(Node node) {
NodeList nl = node.getChildNodes();
for(int a = 0; a < nl.getLength(); a++) {
Node current = nl.item(a);
if(current.getNodeType() == Node.ELEMENT_NODE) {
System.out.println(current.getNodeName() + "\n\t" + current.getTextContent());
Element elem = (Element) current;
this.readXML(elem);
}
}
}
}
Kode: Vælg alt
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>cristian</to>
<from>Jannie</from>
</note>
Output
to
Cristian
from
Jannie
Re: python
Perfekt.. Af lidt omveje fik jeg det til at virke: )
Tak for hjælpen..
Tak for hjælpen..