私は以下のxmlファイルを持っており、要素(CDATAに埋め込まれています)の値を取得する方法がわからないようです。私はlinqをxmlに使用しようとしています。誰かがこれを "Product"オブジェクトに変換する方法を知っている場合(要素と同じ名前のプロパティを持つ製品オブジェクトがあると仮定します)。前もって感謝します。私は上のマシンにアクセス全くないxmlにlinqを使ってCDATAを読み取る
XElement cnetResponse = XElement.Parse(rawXml);
IEnumerable<NameQty> products =
from e in cnetResponse.Descendants("TechProduct")
select new Product(
(string)e.Element("Name"),
(int)e.Element("Topic").Attribute("id"),
(string)e.Element("ImageURL")
);
foreach(Product p in products)
{
// do stuff
}
:rawXml
はCNET応答XMLであるところ、これを試してみてください、あなたのProduct
クラスは、ここで使用コンストラクタを持っていると仮定すると
ボブ
<CNETResponse realm="cnet" version="1.0" xmlns="http://api.cnet.com/rest/v1.0/ns" xmlns:xlink="http://www.w3.org/1999/xlink">
<TechProduct id="33517677">
<Name><![CDATA[Nikon CoolPix L20 (deep red)]]></Name>
<Topic id="1670"></Topic>
<ImageURL width="60"><![CDATA[http://i.i.com.com/cnwk.1d/sc/33517677-2-60-0.gif]]></ImageURL>
</TechProduct>
</CNETResponse>
これはまさに私の問題です。私にこれを手伝ってくれてありがとう、私はこの問題に完全に戸惑いました。 – Beaker