我无法访问此元素的属性。我试图像访问外部循环一样访问它,就像我们在Java中一样。
我试图浏览自动填充的选项,但似乎没有什么对我足够明显
//Studiengaenge/Studiengang[avg(../../Module/Modul[Name = 'Mathematik']//Student[contains-token(id(@StudiengangId)/Student/attribute(), @studentId)]/Note) < 3.0]/Name/text()
我希望我可以很好地访问元素@StudiengangId
的属性Studiengang
。
这是xml文件:
<?xml version="1.0" encoding="ISO-8859-1"?>
<Hochschule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="./Aufgabe1.xsd">
<Studiengaenge>
<Studiengang StudiengangId="G1">
<Name>Informatik</Name>
<Student id="S300564">
<Vorname>Jan Steffen</Vorname>
<Nachname>Krohn</Nachname>
<Anschrift>A4</Anschrift>
<Email>jan.steffen.krohn@stud.th-luebeck.de</Email>
<Geburtstag>1994-04-09</Geburtstag>
<Semester>4</Semester>
</Student>
<Student id="S302119" >
<Vorname>Aurélie</Vorname>
<Nachname>Simo</Nachname>
<Anschrift>A5</Anschrift>
<Geburtstag>1998-05-12</Geburtstag>
<Semester>4</Semester>
</Student>
<Student id="S301877">
<Vorname>Mohammad</Vorname>
<Nachname>Hakim</Nachname>
<Anschrift>A6</Anschrift>
<Geburtstag>1996-04-28</Geburtstag>
<Semester>4</Semester>
</Student>
</Studiengang>
<Studiengang StudiengangId="G2">
<Name>BWL</Name>
<Student id="S300565">
<Vorname>Andreas</Vorname>
<Nachname>Müller</Nachname>
<Anschrift>A5</Anschrift>
<Geburtstag>1998-05-12</Geburtstag>
<Semester>1</Semester>
</Student>
<Student id="S300685">
<Vorname>Tim</Vorname>
<Nachname>Meier</Nachname>
<Anschrift>A5</Anschrift>
<Geburtstag>1996-05-12</Geburtstag>
<Semester>1</Semester>
</Student>
</Studiengang>
<Studiengang StudiengangId="G3">
<Name>Physik</Name>
</Studiengang>
</Studiengaenge>
<Module>
<Modul dozentId="D4">
<Name>Mathematik</Name>
<Studierende>
<Student studentId= "S302119">
<Versuch>1</Versuch>
</Student>
<Student studentId="S301877">
<Note>2.0</Note>
<Versuch>1</Versuch>
</Student>
<Student studentId="S300564">
<Note>1.0</Note>
<Versuch>1</Versuch>
</Student>
<Student studentId="S300565">
<Note>5.0</Note>
<Versuch>3</Versuch>
</Student>
<Student studentId="S300685">
<Note>2.0</Note>
<Versuch>2</Versuch>
</Student>
</Studierende>
<Studiengaenge>G1 G2</Studiengaenge>
</Modul>
<Modul dozentId="D3">
<Name>Programmierung</Name>
<Studierende>
<Student studentId="S301877">
<Note>3.2</Note>
<Versuch>2</Versuch>
</Student>
<Student studentId="S300565">
<Note>1.0</Note>
<Versuch>2</Versuch>
</Student>
</Studierende>
<Evaluationen>
<Evaluation evaluationId="E1">
<Schluessel>LOL</Schluessel>
<Kommentar>Steffen ist oberklug</Kommentar>
</Evaluation>
<Evaluation evaluationId="E1">
<Schluessel>3g4auvli34h</Schluessel>
<Kommentar>Sehr tolles Modul</Kommentar>
</Evaluation>
</Evaluationen>
</Modul>
<Modul dozentId="D2">
<Name>Datenbanken</Name>
<Studierende>
<Student studentId="S300565">
<Note>1.8</Note>
<Versuch>1</Versuch>
</Student>
</Studierende>
</Modul>
<Modul dozentId="D1">
<Name>Rechnerstruckturen</Name>
<Studierende>
<Student studentId="S300564">
<Note>1.3</Note>
<Versuch>2</Versuch>
</Student>
<Student studentId="S301877">
<Note>3.7</Note>
<Versuch>1</Versuch>
</Student>
<Student studentId="S302119">
<Note>4.0</Note>
<Versuch>1</Versuch>
</Student>
</Studierende>
<Evaluationen>
</Evaluationen>
<Studiengaenge>G1</Studiengaenge>
</Modul>
<Modul dozentId="D2">
<Name>Theoretische Informatik</Name>
<Studierende>
<Student studentId="S300564">
<Versuch>1</Versuch>
</Student>
<Student studentId="S301877">
<Versuch>1</Versuch>
</Student>
<Student studentId="S302119">
<Versuch>1</Versuch>
</Student>
</Studierende>
<Studiengaenge>G1 G2</Studiengaenge>
</Modul>
<Modul dozentId="D3">
<Name>Rechnernetze</Name>
<Studierende>
<Student studentId="S300564">
<Note>3.7</Note>
<Versuch>3</Versuch>
</Student>
<Student studentId="S301877">
<Note>2.0</Note>
<Versuch>2</Versuch>
</Student>
<Student studentId="S302119">
<Versuch>1</Versuch>
</Student>
</Studierende>
<Studiengaenge>G3</Studiengaenge>
</Modul>
</Module>
<Dozent id="D4">
<Vorname>Nane</Vorname>
<Nachname>Kratzke</Nachname>
<Anschrift>A1</Anschrift>
<Geburtstag>1987-09-17</Geburtstag>
<Titel>Prof.</Titel>
</Dozent>
<Dozent id="D1">
<Vorname>Ole</Vorname>
<Nachname>Blaurock</Nachname>
<Anschrift>A1</Anschrift>
<Email>blaurock@th-luebeck.de</Email>
<Geburtstag>1998-05-12</Geburtstag>
<Titel>Prof. Dr.</Titel>
</Dozent>
<Dozent id="D2">
<Vorname>Andreas</Vorname>
<Nachname>Schäfer</Nachname>
<Anschrift>A2</Anschrift>
<Geburtstag>1998-05-12</Geburtstag>
<Titel>Prof. Dr. Dr.</Titel>
</Dozent>
<Dozent id="D3">
<Vorname>Andreas</Vorname>
<Nachname>Hanemann</Nachname>
<Anschrift>A3</Anschrift>
<Geburtstag>1998-05-12</Geburtstag>
<Titel>Prof. Dr.</Titel>
</Dozent>
<Evaluationen>
<Evaluation id="E1">
<Fragen>
<Frage id="F1">
<Text>War der Aufwand angemessen?</Text>
</Frage>
<Frage id="F2">
<Text>War Der Dozent nett?</Text>
</Frage>
</Fragen>
</Evaluation>
</Evaluationen>
<Anschrift id="A1">
<Strasse>Ziegelstraße</Strasse>
<Hausnummer>51</Hausnummer>
<Postleitzahl>23566</Postleitzahl>
<Stadt>Lübeck</Stadt>
<Land>Deutschland</Land>
</Anschrift>
<Anschrift id="A2">
<Strasse>Mündungsweg</Strasse>
<Hausnummer>7</Hausnummer>
<Postleitzahl>23566</Postleitzahl>
<Stadt>Lübeck</Stadt>
<Land>Deutschland</Land>
</Anschrift>
<Anschrift id="A3">
<Strasse>Moislingerstrasse</Strasse>
<Hausnummer>143b</Hausnummer>
<Postleitzahl>23562</Postleitzahl>
<Stadt>Lübeck</Stadt>
<Land>Deutschland</Land>
</Anschrift>
<Anschrift id="A4">
<Strasse>Claudiusring</Strasse>
<Hausnummer>23f</Hausnummer>
<Postleitzahl>23565</Postleitzahl>
<Stadt>Lübeck</Stadt>
<Land>Deutschland</Land>
</Anschrift>
<Anschrift id="A5">
<Strasse>Beim Brinkmannschen Park</Strasse>
<Hausnummer>44</Hausnummer>
<Postleitzahl>21079</Postleitzahl>
<Stadt>Hamburg</Stadt>
<Land>Deutschland</Land>
</Anschrift>
<Anschrift id="A6">
<Strasse>Anschützstraße</Strasse>
<Hausnummer>11</Hausnummer>
<Postleitzahl>23562</Postleitzahl>
<Stadt>Lübeck</Stadt>
<Land>Deutschland</Land>
</Anschrift>
</Hochschule>
在这种情况下,结果应该只是一个Studiengang
的名字,即Informatik
。
答案 0 :(得分:0)
我相信您正在寻找这个-可以使用例如lxml:
from lxml import etree
doc = etree.fromstring(your_xml_code_from_question)
counter = 1
count = doc11.xpath('count(///Hochschule/Studiengaenge/Studiengang)')
for i in range(int(count)):
a_path = f"/Hochschule/Studiengaenge/Studiengang{[counter]}/Name"
print(doc11.xpath(a_path)[0].text)
counter += 1
输出:
Informatik
BWL
Physik