2

編集する必要のあるxmlファイルが1つあります。次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<PaketniUvozObrazaca xmlns="urn:PaketniUvozObrazaca_V1_0.xsd">
  <PodaciOPoslodavcu>
    <JIBPoslodavca>XXXXXXXXXX</JIBPoslodavca>
    <NazivPoslodavca>Comapyn</NazivPoslodavca>
    <BrojZahtjeva>1307</BrojZahtjeva>
    <DatumPodnosenja>2013-03-19</DatumPodnosenja>
  </PodaciOPoslodavcu>
  <Obrazac1022>
    <Dio1PodaciOPoslodavcuIPoreznomObvezniku>
      <JIBJMBPoslodavca>XXXXXXXXXX</JIBJMBPoslodavca>
      <Naziv>Compyny</Naziv>
      <AdresaSjedista>Adress </AdresaSjedista>
      <JMBZaposlenika>XXXXXXX</JMBZaposlenika>
      <ImeIPrezime>ad</ImeIPrezime>
      <AdresaPrebivalista>City</AdresaPrebivalista>
      <PoreznaGodina>2012</PoreznaGodina>
    </Dio1PodaciOPoslodavcuIPoreznomObvezniku>
</Obrazac1022>
</PaketniUvozObrazaca>

このファイルからクエリ(ノードの選択)を行う場合、名前空間をどのように参照する必要がありますか?

static void Main(string[] args)
        {
            XmlDocument gip = new XmlDocument();
            gip.Load("C:\\vs2013tests\\adoGipko\\gip-2012.xml");

            XmlNamespaceManager nspm = new XmlNamespaceManager(gip.NameTable);
            nspm.AddNamespace("urn", "PaketniUvozObrazaca_V1_0");

            foreach (XmlNode uposlnik in gip.SelectNodes("//PaketniUvozObrazaca_V1_0/Obrazac1022", nspm))
            {
                Console.WriteLine(uposlnik.SelectSingleNode("Dio1PodaciOPoslodavcuIPoreznomObvezniku/ImeIPrezime",nspm).InnerText);

            }

            Console.ReadKey();
        }
4

1 に答える 1

4

名前空間に名前を付け、XMLとまったく同じようにURIを指定する必要があります。どの名前を使用するかは重要ではありません。

nspm.AddNamespace("d", "urn:PaketniUvozObrazaca_V1_0.xsd");

ここで、すべてのタグにその名前を使用する必要があります。

foreach (XmlNode uposlnik in gip.SelectNodes("//d:PaketniUvozObrazaca/"+
                                             "d:Obrazac1022", nspm))
{
    Console.WriteLine(
        uposlnik.SelectSingleNode("d:Dio1PodaciOPoslodavcuIPoreznomObvezniku/"+
                                  "d:ImeIPrezime", nspm).InnerText);
}

さらに、クエリのルートタグを修正しました。PaketniUvozObrazaca_V1_0名前空間の一部であるものを使用しました。PaketniUvozObrazacaルートタグであるを使用する必要があります。

于 2013-03-20T13:10:49.137 に答える