0

私は次のxmlを持っています

<Location xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Latitude>-1</Latitude>
<Longtitude>-1</Longtitude>
</Location>

名前空間 (xmlns:i...) がなければ、次のクエリを使用できます。

//xdoc is an XDocument loaded with the above xml
var locCollection = from p in xdoc.Descendants("Location") 

名前空間はあるがプレフィックス「i」がない場合、次のクエリを使用できます

XNamespace ns = @"http://www.w3.org/2001/XMLSchema-instance"
var locCollection = from p in xdoc.Descendants(ns + "Location")

では、te "i" プレフィックスをどのように処理すればよいでしょうか。

ありがとう。

4

1 に答える 1

0

問題は、名前空間プレフィックスを指定するときに、その名前空間にある XML 要素に明示的にプレフィックスを付ける必要があることです。したがって、あなたの例では、プレフィックスを明示的に指定するとi:Location、クエリが機能します。

<i:Location xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
  <Latitude>-1</Latitude> 
  <Longtitude>-1</Longtitude> 
</i:Location> 

プレフィックスなしで機能した理由は、プレフィックスが指定されていないと名前空間がデフォルトの名前空間と見なされ、デフォルトで名前空間Locationにスコープが設定されたためです。

于 2012-04-13T07:39:36.810 に答える