2011-07-05 11 views
1

C#2.0を使用してXMLから数タグの値を解析する方法はありますか?で、プログラムでこれらの上記の要素の値を取得する方法C#2.0のXMLスニペットから3つの特定の要素を解析します。

私はタグと

1のように自分の価値を解析する)<v9:Severity>SUCCESS</v9:Severity>

2)<v9:TrackingNumber>634649515000016</v9:TrackingNumber>

3)<v9:Image>iVBORw0KGgoAAAANSUhEUgAAAyAAAASwAQAAAAAryhMIAAAagEl</v9:Image>

C#2.0?

<?xml version="1.0" encoding="UTF-8"?> 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
    <env:Header xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> 
    <soapenv:Body> 
     <v9:ProcessShipmentReply xmlns:v9="http://fedex.com/ws/ship/v9"> 
      <v9:HighestSeverity xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">SUCCESS</v9:HighestSeverity> 
      <v9:Notifications xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
       <v9:Severity>SUCCESS</v9:Severity> 
       <v9:Source>ship</v9:Source> 
       <v9:Code>0000</v9:Code> 
       <v9:Message>Success</v9:Message> 
       <v9:LocalizedMessage>Success</v9:LocalizedMessage> 
      </v9:Notifications> 
      <v9:CompletedShipmentDetail> 
       <v9:CompletedPackageDetails xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
        <v9:SequenceNumber>1</v9:SequenceNumber> 
        <v9:TrackingIds> 
         <v9:TrackingIdType>GROUND</v9:TrackingIdType> 
         <v9:TrackingNumber>634649515000016</v9:TrackingNumber> 
        </v9:TrackingIds> 
        <v9:Barcodes> 
         <v9:BinaryBarcodes> 
          <v9:Type>COMMON_2D</v9:Type> 
          <v9:Value>Wyk+HjAxHTAyMDI3ODAdODQwHTEzNx02MzQ2NDk1</v9:Value> 
         </v9:BinaryBarcodes> 
         <v9:StringBarcodes> 
          <v9:Type>GROUND</v9:Type> 
          <v9:Value>9612137634649515000016</v9:Value> 
         </v9:StringBarcodes> 
        </v9:Barcodes> 
        <v9:Label> 
         <v9:Type>OUTBOUND_LABEL</v9:Type> 
         <v9:ShippingDocumentDisposition>RETURNED</v9:ShippingDocumentDisposition> 
         <v9:Resolution>200</v9:Resolution> 
         <v9:CopiesToPrint>1</v9:CopiesToPrint> 
         <v9:Parts> 
          <v9:DocumentPartSequenceNumber>1</v9:DocumentPartSequenceNumber> 
          <v9:Image>iVBORw0KGgoAAAANSUhEUgAAAyAAAASwAQAAAAAryhMIAAAagEl</v9:Image> 
         </v9:Parts> 
        </v9:Label> 
       </v9:CompletedPackageDetails> 
      </v9:CompletedShipmentDetail> 
     </v9:ProcessShipmentReply> 
    </soapenv:Body> 
</soapenv:Envelope> 
+0

ここでLINQはXMLのチュートリアルにある:http://msdn.microsoft.com/en-us/library/bb387098.aspx。あなたはどこにいらっしゃいますか? – Heinzi

+0

私はLINQを使うことができないので、私はC#2.0で作業しています。 – Mou

答えて

4

あなたが#2.0(および、したがって、LINQからXMLを使用することはできません)、CちょうどあなたのXMLのうち、単一の値は、XPathを使用することです見つけるための最も簡単な方法を使用することを言ったので:

あなたのXML名前空間が<v9:...>が含まれているので、問題はもう少し複雑になります:あなたはXmlNamespaceManagerを初期化し、XPathNavigatorにそれを渡す必要があります。ここでは、この問題について詳しく説明するブログ記事を掲載しています。 XmlNode.SelectNodes MSDNページ(上記のリンクを参照)にも例があります。

+1

+1。また、[xml namespaces](http://msdn.microsoft.com/en-us/library/ms950779.aspx)についてもお読みください。 – Reniuz

関連する問題