tutorials.de Buch-Aktion 05/2012
Seite 2 von 2 ErsteErste 12
ERLEDIGT
NEIN
ANTWORTEN
27
ZUGRIFFE
2092
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #16
    Tikonteroga Tikonteroga ist offline Mitglied Gold
    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)
     

  2. #17
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Zitat Zitat von Tikonteroga Beitrag anzeigen
    Hallo,

    also folgender Code gibt eine leere Menge zurück, also eine XmlNodeList mit Count=0.
    Das kann nun verschiedene Ursachen haben. Als erstes würde ich auf falsche Namensräume tippen.

    Mach ein konkretes Minimalbeispieldokument.

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #18
    Tikonteroga Tikonteroga ist offline Mitglied Gold
    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)
     

  4. #19
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Zitat Zitat von Tikonteroga Beitrag anzeigen
    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.
    Ja, und?! Was willst du damit sagen?
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  5. #20
    Tikonteroga Tikonteroga ist offline Mitglied Gold
    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.
     

  6. #21
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Zitat Zitat von Tikonteroga Beitrag anzeigen
    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.
    Du willst also eine Knotenmenge von AR-PACKAGE Elementen erhalten?
    Code :
    1
    
    AR-PACKAGE[ELEMENTS/FRAME]
    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  7. #22
    Tikonteroga Tikonteroga ist offline Mitglied Gold
    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)
     

  8. #23
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    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.

  9. #24
    Tikonteroga Tikonteroga ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    153
    Sorry, das war ein Tipp-Fehler.

    Habe es eben auch nochmal mit FRAME geprüft.
     

  10. #25
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    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.

  11. #26
    Tikonteroga Tikonteroga ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    153
    Hallo,

    ich habe einen Auszug erstellt und hochgeladen.
    Angehängte Dateien Angehängte Dateien
     

  12. #27
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Also bei mir funktioniert das problemlos. Powershell:
    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...
    Es wird genau ein AR-PACKAGE gefunden.

    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.

  13. #28
    Tikonteroga Tikonteroga ist offline Mitglied Gold
    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

  1. Antworten: 1
    Letzter Beitrag: 01.02.10, 13:58
  2. C# XML datei Knoten finden per XPath
    Von Heavenfighter im Forum .NET Datenverwaltung
    Antworten: 4
    Letzter Beitrag: 27.01.09, 14:22
  3. Antworten: 12
    Letzter Beitrag: 22.04.07, 09:03
  4. xsl - xpath aus xml-datei benutzen
    Von Valiant im Forum XML Technologien
    Antworten: 0
    Letzter Beitrag: 02.06.05, 20:33
  5. Antworten: 4
    Letzter Beitrag: 22.04.05, 14:16