如何获取Tridion中所选项目的itemxml

时间:2013-02-13 06:52:28

标签: tridion tridion-2011

我想从Tridion CME中获取并显示所选项目的 itemxml

当我在浏览器中提供tcm id时,我能够从我的VM服务器获取Itemxml。

但是,我想从Tridion GUI Extension获得相同的信息。

我能够获得所选项目tcm id。有没有办法使用 coreservice 获取itemxml?

或者还有其他方法可以解决这个问题吗?

4 个答案:

答案 0 :(得分:5)

目前,您无法通过核心服务获得Item XML。您看到的项目XML由TCM协议处理程序提供给您,可能在将来的版本中不存在。如果你想在CME中显示项目XML - 请看看Yoaw的这个扩展:

http://sdltridionworld.com/articles/sdltridion2011/tutorials/GUIextensionIn8steps.aspx

另外,请记住,并非所有属性都可能在Xml中公开,有时您在Data对象中有更多信息

答案 1 :(得分:4)

看看PowerTools,它有一个ItemXML查看器(由Robert Curlette编写),用于SDL Tridion中的所有项目

http://code.google.com/p/tridion-2011-power-tools/wiki/ItemXML

使用JavaScript将XML加载到选项卡上,如下所示:

ItemXmlTab.ItemXmlTab.prototype.updateView = function ItemXmlTab$updateView()
{
    if (this.isSelected()) 
    {
        var xslPath = $ptUtils.expandPath("/PowerTools/Client/ItemXml/ItemXmlTab.xslt", true);

        $xml.loadXsltProcessor(xslPath, function (value) 
        {
            var xmlSource = $display.getItem().getXml();

            // Filter out all spacing characters
            xmlSource = xmlSource.replace(/\t|\n|\r/g, "");

            var html = $xml.xsltTransform(value, $xml.getNewXmlDocument(xmlSource), null);

            $dom.setOuterHTML($("#itemXml"), html);
        });        
    }
};

您可以在http://code.google.com/p/tridion-2011-power-tools/source/browse/#svn%2Ftrunk%2FPowerTools.Editor%2FPowerTools%2FClient%2FItemXml%253Fstate%253Dclosed

查看扩展程序的源代码

答案 2 :(得分:2)

您可以通过CoreService获取项目XML,但这将获得Tridion R6(2011)Xml格式,这与您之前看到的不同。

示例代码here

我倾向于在我的Tcm服务器上有一个页面“GetItemXml.aspx”,然后我用Uri作为参数调用,然后这个页面将返回Item Xml。

答案 3 :(得分:1)

Yoav Niran撰写的文章(Url在user978511的帖子中)非常适合您的要求。

如果您仍然遇到任何问题,并且急着让它工作,只需执行以下步骤 -

1-下载extension

2-应用this article的步骤7和8配置此扩展程序。