確かにそれは最も簡単な方法ではありませんが、正しい例を得ることだけです。
私は以下のコードを使用してget listsクエリから「stuff」を取得しました。
public static XmlNodeList XpathQuery(XmlNode xmlToQuery, string xPathQuery)
{
XmlDocument doc = new XmlDocument();
doc.LoadXml(xmlToQuery.OuterXml);
XmlNamespaceManager mg = new XmlNamespaceManager(doc.NameTable);
mg.AddNamespace("sp", "http://schemas.microsoft.com/sharepoint/soap/");
mg.AddNamespace("z", "#RowsetSchema");
mg.AddNamespace("rs", "urn:schemas-microsoft-com:rowset");
mg.AddNamespace("y", "http://schemas.microsoft.com/sharepoint/soap/ois");
mg.AddNamespace("w", "http://schemas.microsoft.com/WebPart/v2");
mg.AddNamespace("d", "http://schemas.microsoft.com/sharepoint/soap/directory");
return doc.SelectNodes(xPathQuery, mg);
}
XmlNode items = lists.GetListItems(listName, string.Empty, listQuery, listViewFields, string.Empty, listQueryOptions, g.ToString());
foreach (XmlNode listItem in SPCollection.XpathQuery(items, "//sp:listitems/rs:data/z:row"))
{
XmlAttribute id = listItem.Attributes["ows_Id"];
if (id != null)
{
pageId = id.Value;
}
}
に例を使用してそれを呼び出すと、全体の多くを行う、うまくいけば、それはあなたのデータを得ることについて移動する方法についてのアイデアを提供していません。 はい、私はXPathQueriesの名前空間の問題全体を嫌っていますが、何をするつもりですか。
私は、SharePoint Webサービスを再作成することに興味がありません。特に、私たちの環境でのテストやリリースは数週間の努力を要するためです。時には、オプションはありません。例えば。 SPWebのカスタムプロパティバッグにアクセスしたり、特定のサイトテンプレートとコンテンツデータベース(またはWebサービスに実装されていないその他の何百万ものもの)を使用してSiteCollectionを作成したい場合などです。しかし、単純なリストアクセスの場合、Webサービスはうまくいくようです。
出典
2009-04-23 21:57:14
Nat
私は本当にばかげた質問をすることができますか?どのようにそれらの名前空間について知っていましたか? – senfo
気にしない、見つけました。彼らはSharePointからの応答にあります。 – senfo