以下问题已在其他论坛发布,但没有回应,我遇到同样的问题,我认为这会得到一些答案:
问题:
我正在使用SharePoint 2007 GetListItems Web服务以编程方式检索文档库中的所有文档。但是,由于XML响应中包含无效字符,我的程序抛出异常。坏数据在Word文档中。文档属性的“注释”部分中有控制字符。那么坏人物最终会变成什么?在XML输出中的ows_MetaInfo字段中无效。
我不需要ows_MetaInfo字段,因此我一直在尝试使用viewFields参数来指定要返回的字段,并将查询选项IncludeMandatoryColumns设置为false,但始终返回ows_MetaInfo字段。
有没有人知道是否可以从输出中删除ows_MetaInfo字段或以某种方式处理XML输出中出现的这些无效字符
答案 0 :(得分:1)
这适用于我排除ows_MetaInfo字段:
<soap:GetListItems>
<soap:listName>{....}</soap:listName>
<soap:viewFields>
<ViewFields Properties="True">
<FieldRef Name="*"/>
<FieldRef Name="MetaInfo"/>
</ViewFields>
</soap:viewFields>
</soap:GetListItems>
另见http://msdn.microsoft.com/en-us/library/dd964860(v=office.12).aspx
答案 1 :(得分:0)
无法从输出中删除此字段,或者至少没有找到我找到的字段。 MSDN文档说,即使您将IncludeMandatoryColumns设置为false,它也会返回一些必填字段。
我认为你最好的选择是向微软填写错误报告,说无效字符放在ows_MetaInfo字段中。
您可以尝试另一件事,但我不知道它是否会解决将ViewFields元素的Properties属性设置为TRUE的问题。
<ViewFields Properties="TRUE">your fieldrefs</ViewFields>