ERLEDIGT
NEIN
NEIN
ANTWORTEN
27
27
ZUGRIFFE
2092
2092
EMPFEHLEN
-
26.01.12 11:32 #16
- Registriert seit
- Apr 2007
- Beiträge
- 153
Hallo,
also folgender Code gibt eine leere Menge zurück, also eine XmlNodeList mit Count=0.
Code :1 2 3 4 5 6 7
XmlNamespaceManager arxmlNamespaceManager = new XmlNamespaceManager(arxmlDocument.NameTable); string namespaceURI = arxmlDocument.DocumentElement.NamespaceURI; arxmlNamespaceManager.AddNamespace("ns", namespaceURI); XmlNodeList frameNodes = arxmlDocument.SelectNodes("/ns:AUTOSAR/ns:TOP-LEVEL-PACKAGES/ns:AR-PACKAGE/ns:ELEMENTS/ns:FRAME", arxmlNamespaceManager);
Ich hatte jetzt angenommen, dass dies so ist, weil bei dieser Abfrage nur das erstele Element AR-PACKAGE ausgewertet wird und die Sequence von FRAME nicht im ersten Element AR-PACKAGE enthalten ist.Geändert von Tikonteroga (26.01.12 um 11:35 Uhr)
-
26.01.12 11:45 #17
- Registriert seit
- Jun 2005
- Beiträge
- 8.169
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
26.01.12 12:53 #18
- Registriert seit
- Apr 2007
- Beiträge
- 153
Hallo,
also ich habe jetzt mal anstelle von...
Code :1
"/ns:AUTOSAR/ns:TOP-LEVEL-PACKAGES/ns:AR-PACKAGE/ns:ELEMENTS/ns:FRAME"
... folgenden XPath Ausdruck vervendet.
Code :1
"/ns:AUTOSAR/ns:TOP-LEVEL-PACKAGES/ns:AR-PACKAGE/ns:ELEMENTS/ns:UNIT"
Dabei ist das XML-Element AR-PACKAGE, das im Child-Element ELEMENTS die Child-Elemente UNIT enthält, das erste (1.) in der Sequence von AR-PACKAGE-Elementen im Element TOP-LEVEL-PACKAGES.
Wenn ich also das Element UNIT addressiere erhalte ich 27 Elemente zurück.Geändert von Tikonteroga (26.01.12 um 13:16 Uhr)
-
26.01.12 13:16 #19
- Registriert seit
- Jun 2005
- Beiträge
- 8.169
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
26.01.12 13:33 #20
- Registriert seit
- Apr 2007
- Beiträge
- 153
Naja letztendlich wollte ich nachfragen, wie ich den XPath Ausdruck beschreiben muss, damit ich aus einer Sequence aus AR-PACKAGE Elementen das oder die AR-PACKAGEElemente abrufen kann, die als Child-Element von ELEMENTS eine Sequence von FRAME-Elementen hat.
-
26.01.12 13:45 #21
- Registriert seit
- Jun 2005
- Beiträge
- 8.169
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
26.01.12 13:57 #22
- Registriert seit
- Apr 2007
- Beiträge
- 153
Hallo,
vielen Dank für die Antwort.
Ich habe deinen Vorschlag gleich mal ausprobiert.
Code :1
XmlNodeList arPackageNodes = arxmlDocument.SelectNodes("/ns:AUTOSAR/ns:TOP-LEVEL-PACKAGES/ns:AR-PACKAGE[ns:ELEMENTS/ns:FRAME]", arxmlNamespaceManager);
Ich habe jedoch 0 Elemente zurückbekommen. Ich erwarte aber 1 Element.
Wenn ich folgenden Aufruf mache erhalten ich eine Menge von 10 Elementen zurück.
Code :1
XmlNodeList arPackageNodes = arxmlDocument.SelectNodes("/ns:AUTOSAR/ns:TOP-LEVEL-PACKAGES/ns:AR-PACKAGE[ns:ELEMENTS]", arxmlNamespaceManager);
Dieser Aufruf verhält sich gleich wie folgender Aufruf.
Code :1
XmlNodeList arPackageNodes = arxmlDocument.SelectNodes("/ns:AUTOSAR/ns:TOP-LEVEL-PACKAGES/ns:AR-PACKAGE", arxmlNamespaceManager);Geändert von Tikonteroga (26.01.12 um 14:14 Uhr)
-
26.01.12 14:05 #23
- Registriert seit
- Jun 2005
- Beiträge
- 8.169
Ich dachte FRAME müßte groß geschrieben werden?!
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
26.01.12 14:14 #24
- Registriert seit
- Apr 2007
- Beiträge
- 153
Sorry, das war ein Tipp-Fehler.
Habe es eben auch nochmal mit FRAME geprüft.
-
26.01.12 14:17 #25
- Registriert seit
- Jun 2005
- Beiträge
- 8.169
Erstelle ein konkretes Minimalbeispieldokument.
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
26.01.12 14:41 #26
- Registriert seit
- Apr 2007
- Beiträge
- 153
Hallo,
ich habe einen Auszug erstellt und hochgeladen.
-
26.01.12 15:48 #27
- Registriert seit
- Jun 2005
- Beiträge
- 8.169
Also bei mir funktioniert das problemlos. Powershell:
Es wird genau ein AR-PACKAGE gefunden.Code :1 2 3 4 5 6 7 8 9
> $doc = New-Object System.Xml.XmlDocument > $doc.Load("example.xml") > $ns = @{"ns" = $doc.DocumentElement.NamespaceURI} > Select-Xml -Xpath "/ns:AUTOSAR/ns:TOP-LEVEL-PACKAGES/ns:AR-PACKAGE[ns:ELEMENTS/ns:FRAME]" -namespace $ns $doc namespace $ns $doc Node Path Pattern ---- ---- ------- AR-PACKAGE InputStream /ns:AUTOSAR/ns:TOP-LEVEL-PACKAGES/ns...
Du mußt irgendetwas anderes falsch machen.
Verarbeitest du auch das richtige Dokument? Hast du es auch mit dem Beispieldokument probiert bevor du es hochgeladen hast?
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
30.01.12 14:36 #28
- Registriert seit
- Apr 2007
- Beiträge
- 153
Hallo,
also mit dem Beispieldokument erhalten ich auch 1 Element als Ergebnismenge.
Ich werde mir jetzt nochmal das original anschauen, vielleicht hab ich ja irgendwas übersehen ...
Ähnliche Themen
-
[C#] Wie kann ich auf eine Datei im Netzwerk zugreifen?
Von Tom251981 im Forum C/C++Antworten: 1Letzter Beitrag: 01.02.10, 13:58 -
C# XML datei Knoten finden per XPath
Von Heavenfighter im Forum .NET DatenverwaltungAntworten: 4Letzter Beitrag: 27.01.09, 14:22 -
von einem java Programm auf eine .jar datei zugreifen
Von Paddelente im Forum JavaAntworten: 12Letzter Beitrag: 22.04.07, 09:03 -
xsl - xpath aus xml-datei benutzen
Von Valiant im Forum XML TechnologienAntworten: 0Letzter Beitrag: 02.06.05, 20:33 -
wie kann man variablen in eine *.ini datei auslagern und mit java darauf zugreifen?
Von larss im Forum JavaAntworten: 4Letzter Beitrag: 22.04.05, 14:16





Zitieren

Login





