Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: [XML] XPath in XML-Dokument (mit XML-Namespace) greift n

  Alt 11. Sep 2006, 15:04
Hallo Sebastian,

C# und .NET ignoriere ich eigentlich so gut ich kann, aber wenn du meinen Code lesen kannst, dann findest du deinen Fehler vielleicht selbst:

Delphi-Quellcode:
uses
  MSXML2;

const
  NSMY = 'http://schemas.microsoft.com/office/infopath/2003/myXSD/2006-02-09T21:22:41';
  TESTXML = 'DeineTestDaten.xml';

procedure TDemoForm.DemoButtonClick(Sender: TObject);
var
  e: IXMLDOMElement;
begin
  with CoDOMDocument40.Create do
  begin
    async := False;
    setProperty('SelectionNamespaces', Format('xmlns:my="%s"', [NSMY]));
    if Load(TESTXML) then
    begin
      e := selectSingleNode('my:myFields/my:edName') as IXMLDOMElement;
      if Assigned(e)
        then ShowMessage(e.text)
        else ShowMessage('rats!');
    end;
  end;
end;
Zu deinen XPATH-Versuchen: durch den Slash am Anfang wechselst du den context für die expression. Da du das document als context vorgibst (XmlDoc.selectSingleNode...) outet dich der führende Slash höchstens als Mitglied der Hosenträger-und-Gürtel-Fraktion. Garnicht funktionieren kann 'my:edName' - ob mit oder ohne Slash. Funktionieren würde '//my:edName' oder '/*/my:edName'.

Grüße vom marabu
  Mit Zitat antworten Zitat