0

2つのリンクを含むxmlファイルがあります。次にrelとのリンクが存在するかどうかを確認し、href値を取得する必要があります。

<a:link rel="prev" type="application/atom+xml" type="application/atom+xml" href="/v3.2/en-us/" />
<a:link rel="next" type="application/atom+xml" type="application/atom+xml" href="/v3.2/en-us/" />
4

2 に答える 2

2

xmlをXDocumentに読み込み、LINQを使用して次の要素を見つけるのはどうですか。

XDocument x = XDocument.Parse("<xml><link rel=\"prev\" type=\"application/atom+xml\" href=\"/v3.2/en-us/\" /> <link rel=\"next\" type=\"application/atom+xml\" href=\"/v3.2/en-us/\" /></xml>");

XElement link = x.Descendants("link")
                 .FirstOrDefault(a => a.Attribute("rel").Value == "next");

String href = string.Empty;
if(link != null)
{
     href = link.Attribute("href").Value; 
}
于 2012-06-08T15:04:38.673 に答える
0

このパブリックxmlライブラリを使用して、次の値を取得できます。

XElement root = XElement.Load(file); // or .Parse(string)
string href = root.XGetElement<string>("//a:link[@rel={0}]/href", null, "next");
if(null != href)
    ... link was found ...

それはで動作するはずa:linkですが、それがない場合は試してみませんa:。の名前空間が宣言された場所によって異なります。ルートノードにある場合は問題ありません。

XGetElement()基本的にはの組み合わせですXPathElement("//a:link[@rel={0}]").Get<string>("href", null)Get()また、ノードから値を取得するためのライブラリの一部であり、最初に名前で属性をチェックし、次に子ノードをチェックします。

于 2012-06-08T15:30:34.733 に答える