python

Her kan du få hjælp og stille spørgsmål til andre programmeringssprog!
Besvar
tomronne
Begynder
Indlæg:2
Tilmeldt:27. okt 2019, 13:06
python

Indlæg af tomronne » 27. okt 2019, 13:33

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: )

jepperask
Geni
Geni
Indlæg:378
Tilmeldt:4. nov 2012, 17:57

Re: python

Indlæg af jepperask » 28. okt 2019, 18:39

Du kan lave et GET-request til URL'en med modulet "requests" - der er et eksempel her: https://stackoverflow.com/questions/183 ... l-response

cristian
Moderator
Moderator
Indlæg:882
Tilmeldt:26. sep 2011, 21:31
Kontakt:

Re: python

Indlæg af cristian » 28. okt 2019, 19:50

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

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);
			}
		}
	}
}
XML filen er som sådan

Kode: Vælg alt

<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>cristian</to>
<from>Jannie</from>
</note>
Output
to
Cristian
from
Jannie

tomronne
Begynder
Indlæg:2
Tilmeldt:27. okt 2019, 13:06

Re: python

Indlæg af tomronne » 1. nov 2019, 22:58

Perfekt.. Af lidt omveje fik jeg det til at virke: )

Tak for hjælpen..

Besvar