Sharepoint 2010元数据字段键、值

Sharepoint 2010元数据字段键、值,sharepoint,sharepoint-2010,sharepoint-api,Sharepoint,Sharepoint 2010,Sharepoint Api,我目前正在使用Sharepoint 2010和Sharepoint API创建一个包含一些现有文档列表的文档库 我创建了一个WinForm,它在给定的文档列表中循环,然后根据文档的“类型(元数据字段)”将它们添加到不同的文档库中。类型是通过读取特定文档的“元数据字段”来确定的。元数据字段是通过创建SPFields 问题: 当读取文档元数据字段以确定“类型”时,我意识到元数据字段“类型”(键)实际上作为“类型+TaxHTField0”拉出,而键的值作为值| GUID拉出 因此,例如,如果我的元

我目前正在使用Sharepoint 2010和Sharepoint API创建一个包含一些现有文档列表的文档库

我创建了一个WinForm,它在给定的文档列表中循环,然后根据文档的“类型(元数据字段)”将它们添加到不同的文档库中。类型是通过读取特定文档的“元数据字段”来确定的。元数据字段是通过创建
SPFields

  • 问题:
当读取文档元数据字段以确定“类型”时,我意识到元数据字段“类型”
(键)
实际上作为“类型+TaxHTField0”拉出,而
键的值作为值| GUID拉出

因此,例如,如果我的元数据字段在从API返回时被称为
Doc\u x0020\u Type
,那么它将显示为
Doc\u x0020\u TypeTaxHTField0
,它的值应该是
“products”
,但显示为

products|21EC2020-3AEA-1069-A2DD-08002B30309D
我们是否可以在sharepoint中设置一个设置来删除向元数据字段的键和值添加额外字符和GUID

下面是我为纠正这个问题所做的工作,但我想知道这是否是我们可以在sharepoint中设置的设置

    public String GetLibrary(Hashtable itemProperties)
    {
        String typeMetaField = "Doc_x0020_TypeTaxHTField0";
        String sKey = String.Empty;
        foreach (DictionaryEntry deEntry in itemProperties)
        {
            sKey = deEntry.Key.ToString();
             if (sKey == typeMetaField){
                _type = deEntry.Value.ToString();
                string[] value = _type.Split('|');
                _type = value[0].Trim();

            }
        }

        return GetDocumentLibrary(_type);
    }
这是故意的

如果将分类法字段添加到自己的contenttype(例如名为“MyTaxField”)中,SharePoint将自动生成一个隐藏的“Notes”字段,其中包含您在UI中选择的值的标签和guid

这在使用SPSiteDataQuery时非常有用,因为它将为允许多个值的分类法字段返回空值(但适用于单值分类法字段)

获取分类法值的唯一方法是为名为“MyTaxFieldTaxHTField0”的隐藏字段设置一个

但正如您所发现的,此字段的格式可能不符合您的要求:)

我没有对此进行测试,但您是否检查了您的contenttype是否包含名为“Doc\u x0020\u Type”(可能是TaxonomyFieldValue(Collection))的字段?

是的,它确实包含我所要的“Doc\u x0020\u Type”。谢谢你的评论。。