我想从Tridion CME中获取并显示所选项目的 itemxml 。
当我在浏览器中提供tcm id时,我能够从我的VM服务器获取Itemxml。
但是,我想从Tridion GUI Extension获得相同的信息。
我能够获得所选项目tcm id。有没有办法使用 coreservice 获取itemxml?
或者还有其他方法可以解决这个问题吗?
答案 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);
});
}
};
查看扩展程序的源代码
答案 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配置此扩展程序。