我想从Tridion CME中获取并显示itemxml中选定项目。如何获取Tridion中选定项目的itemxml
当我在浏览器中给出tcm id时,我能够从我的VM服务器获取Itemxml。
但是,我想从Tridion GUI Extension获得相同的信息。
我能够得到选定的项目tcm id。有什么办法可以使用coreservice获得itemxml吗?
还是有其他方法可以得到这个吗?
我想从Tridion CME中获取并显示itemxml中选定项目。如何获取Tridion中选定项目的itemxml
当我在浏览器中给出tcm id时,我能够从我的VM服务器获取Itemxml。
但是,我想从Tridion GUI Extension获得相同的信息。
我能够得到选定的项目tcm id。有什么办法可以使用coreservice获得itemxml吗?
还是有其他方法可以得到这个吗?
目前无法通过核心服务获取Item XML。您看到的项目XML由TCM协议处理程序提供给您,未来版本中可能不存在。如果你想显示在CME项目XML - 看看这个extention通过Yoaw:
http://sdltridionworld.com/articles/sdltridion2011/tutorials/GUIextensionIn8steps.aspx
另外,请记住,一个项目并不是所有的属性可以用XML暴露,有时候你有更多的数据对象中的信息
您可以通过CoreService获取项目XML,但这会得到Tridion R6(2011)Xml格式,这与您之前会看到的格式不同。
提供样品代码here。
我倾向于在我的Tcm服务器上有一个页面“GetItemXml.aspx”,然后用Uri作为参数调用,然后这个页面返回Item Xml。
看看在PowerTools的,它具有对SDL的所有项目的ItemXML观众(罗伯特Curlette写的)外表套上
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);
});
}
};
文章查看扩展的源代码n(在user978511的帖子中的网址)非常适合您的需求。
,如果你仍然面临的任何问题,并急于得到它的工作只是下面的步骤进行 -
1-下载extension。
2-应用this article的步骤7和8来配置此扩展。