Ne pouvez pas obtenir XmlDocument.SelectNodes retrouver l'une de mes nœuds?

Je suis en train d'analyser un document XML. Le document en question est un fichier AppxManifest.

Un document de l'exemple ressemble à ceci:

<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/2010/manifest" xmlns:build="http://schemas.microsoft.com/developer/appx/2012/build" IgnorableNamespaces="build">
  <Identity Name="uytury" Publisher="hygj" Version="1.0.0.12" ProcessorArchitecture="neutral" />
  <Properties>
    <DisplayName>jhjj</DisplayName>
    <PublisherDisplayName>bhhjb</PublisherDisplayName>
    <Logo>Assets\StoreLogo.png</Logo>
  </Properties>
  <Prerequisites>
    <OSMinVersion>6.2.1</OSMinVersion>
    <OSMaxVersionTested>6.2.1</OSMaxVersionTested>
  </Prerequisites>
  <Resources>
    <Resource Language="EN" />
  </Resources>
  <Applications>
    <Application Id="App" Executable="gfg.exe" EntryPoint="gfg.App">
      <VisualElements DisplayName="fdsf" Logo="Assets\Logo.png" SmallLogo="Assets\SmallLogo.png" Description="gfdsg" ForegroundText="light" BackgroundColor="#2672EC">
        <DefaultTile ShowName="allLogos" WideLogo="Assets\WideLogo.png" ShortName="gfdsg" />
        <SplashScreen Image="Assets\SplashScreen.png" BackgroundColor="#2672EC" />
        <InitialRotationPreference>
          <Rotation Preference="portrait" />
          <Rotation Preference="landscape" />
          <Rotation Preference="portraitFlipped" />
          <Rotation Preference="landscapeFlipped" />
        </InitialRotationPreference>
      </VisualElements>
      <Extensions>
        <Extension Category="windows.search" />
        <Extension Category="windows.shareTarget">
          <ShareTarget>
            <DataFormat>Text</DataFormat>
          </ShareTarget>
        </Extension>
      </Extensions>
    </Application>
  </Applications>
  <build:Metadata>
    <build:Item Name="TargetFrameworkMoniker" Value=".NETCore,Version=v4.5" />
    <build:Item Name="VisualStudio" Version="11.0" />
    <build:Item Name="OperatingSystem" Version="6.2.9200.16384 (win8_rtm.120725-1247)" />
    <build:Item Name="Microsoft.Build.AppxPackage.dll" Version="11.0.50727.1" />
    <build:Item Name="Microsoft.Windows.UI.Xaml.Build.Tasks.dll" Version="11.0.50727.1" />
  </build:Metadata>
</Package>

J'essaie de l'analyser comme suit:

var xml=new XmlDocument();
xml.Load(myfile);
var mgr=new XmlNamespaceManager(xml.NameTable);
mgr.AddNamespace("", "http://schemas.microsoft.com/appx/2010/manifest");
var nodes=xml.SelectNodes("Applications");

Cependant, après que j'ai exécuter cette, nodes ne comprendront jamais rien. Le document xml est chargé et tels que. à l'aide de SelectNodes("//*") revient à chaque nœud comme prévu. Qu'est-ce que mon problème ici?

J'ai aussi essayé de nombreuses variations sur cette requête XPath comme

  • /Package/Applications/Application
  • Applications/Application
  • Applications/*

Rien ne s'affiche pour récupérer le nœud unique. Idéalement, j'aimerais que les nœuds pour contenir tous les Application nœuds

Ton titre parle de XDocument, mais votre code utilise XmlDocument. Si vous étiez vraiment à l'aide de LINQ to XML, j'aimerais simplement vous suggérons d'utiliser des Descendants... est LINQ to XML une option?
malheureusement nous ne pouvons pas utiliser Linq to XML, car nous avons un objectif .Net 2.0. Cependant, je voulais mettre XmlDocument. Je reçois toujours les deux confondus

OriginalL'auteur Earlz | 2012-09-26