Text Field全为空格时:
<Eq><FieldRef Name='TextFieldName' /><Value Type='Text'></Value></Eq> Text Field不含任何字符时:<IsNull><FieldRef Name='TextFieldName' ></FieldRef></IsNull>,上条不成立 Text Field不区分英文大小写,这一点应该主要取决于数据库的语言设置。 User Field格式为: UserID;#UserName,如:16;#Leo Ge 如果某个字段为空,则有可能不返回该字段,对XmlNode的Attribute必须先作有效性检验,如:if (i.Attributes.GetNamedItem("ows_Machine")!=null) taskItem.Machine = i.Attributes["ows_Machine"].Value; GetListItems的一般性做法:
XmlDocument xmlDoc
=
new
XmlDocument(); XmlElement query
=
xmlDoc.CreateElement(
"
Query
"
); XmlElement viewFields
=
xmlDoc.CreateElement(
"
ViewFields
"
); XmlElement queryOptions
=
xmlDoc.CreateElement(
"
QueryOptions
"
); query.InnerXml
=
"
<Where>
"
+
"
<Or>
"
+
"
<Eq><FieldRef Name='Machine' /><Value Type='Text'>
"
+
machineName
+
"
</Value></Eq>
"
+
"
<Or>
"
+
"
<IsNull><FieldRef Name='Machine'></FieldRef></IsNull>
"
+
"
<Eq><FieldRef Name='Machine' /><Value Type='Text'></Value></Eq>
"
+
"
</Or>
"
+
"
</Or>
"
+
"
</Where>
"
; viewFields.InnerXml
=
""
; queryOptions.InnerXml
=
""
; XmlNode node
=
wss.GetListItems(
"
{E7E1EEC8-F627-48A9-8228-F4BC1CA45F0C}
"
,
"
{FC3C7DFF-7399-4944-A155-56AF8BCB0F11}
"
, query, viewFields,
"
100
"
, queryOptions,
null
); NameTable nt
=
new
NameTable(); XmlNamespaceManager xnm
=
new
XmlNamespaceManager(nt); xnm.AddNamespace(
"
rs
"
,
"
urn:schemas-microsoft-com:rowset
"
); xnm.AddNamespace(
"
z
"
,
"
#RowsetSchema
"
); xmlDoc
=
new
XmlDocument(); xmlDoc.ImportNode(node,
true
);
foreach
(XmlNode i
in
node.SelectNodes(
"
rs:data/z:row
"
,xnm))
{ int id = int .Parse(i.Attributes[ " ows_ID " ].Value); string title = i.Attributes[ " ows_Title " ].Value; bool reloadData = i.Attributes[ " ows_Reload_x0020_Data " ].Value == " 1 " ? true : false ; DateTime created = DateTime.Parse(i.Attributes[ " ows_Created " ].Value); string createdBy = i.Attributes[ " ows_Author " ].Value; // 格式为userID;#userName DateTime modified = DateTime.Parse(i.Attributes[ " ows_Modified " ].Value); string modifiedBy = i.Attributes[ " ows_Editor " ].Value; // 格式为userID;#userName EnumStatus status = (EnumStatus) Enum.Parse( typeof (EnumStatus), i.Attributes[ " ows_Status " ].Value); if (i.Attributes.GetNamedItem( " ows_Machine " ) != null ) { // 可能为空的字段要先作检查 string machine = i.Attributes[ " ows_Machine " ].Value; } }
转载于:https://www.cnblogs.com/vincedotnet/archive/2007/11/20/965325.html