我想从 Tridion CME获取并显示所选项目的 itemxml 。
当我在浏览器中提供 tcm id 时,我能够从我的 VM 服务器获取 Itemxml。
但是,我想从 Tridion GUI Extension 获得相同的信息。
我能够获得选定的项目 tcm id。有什么方法可以使用coreservice获取 itemxml吗?
还是有其他方法可以得到这个?
我想从 Tridion CME获取并显示所选项目的 itemxml 。
当我在浏览器中提供 tcm id 时,我能够从我的 VM 服务器获取 Itemxml。
但是,我想从 Tridion GUI Extension 获得相同的信息。
我能够获得选定的项目 tcm id。有什么方法可以使用coreservice获取 itemxml吗?
还是有其他方法可以得到这个?
目前,您无法通过核心服务获取 Item XML。您看到的项目 XML 是由 TCM 协议处理程序提供给您的,在未来的版本中可能不存在。如果您想在 CME 中显示项目 XML - 请查看 Yoaw 的此扩展:
http://sdltridionworld.com/articles/sdltridion2011/tutorials/GUIextensionIn8steps.aspx
另外,请记住,并非项目的所有属性都可能在 Xml 中公开,有时您在 Data 对象中有更多信息
查看 PowerTools,它有一个 ItemXML 查看器(由 Robert Curlette 编写),用于查看 SDL Tridion 中的所有项目
http://code.google.com/p/tridion-2011-power-tools/wiki/ItemXML
XML 使用 JavaScript 加载到选项卡上,如下所示:
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查看扩展的源代码%253D关闭
您可以通过 CoreService 获取项目 XML,但这将为您提供 Tridion R6 (2011) Xml 格式,这与您之前看到的不同。
此处提供示例代码。
我倾向于在我的 Tcm 服务器上有一个页面“GetItemXml.aspx”,然后我使用 Uri 作为参数调用该页面,然后该页面将返回 Item Xml。