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 を取得する方法はありますか?
またはこれを取得する他の方法はありますか?
現時点では、コア サービスからアイテム XML を取得する方法はありません。表示されたアイテム XML は、TCM プロトコル ハンドラによって提供されたもので、将来のバージョンには存在しない可能性があります。CME でアイテム XML を表示したい場合は、Yoaw によるこの拡張機能を見てください。
http://sdltridionworld.com/articles/sdltridion2011/tutorials/GUIextensionIn8steps.aspx
また、項目のすべてのプロパティが Xml で公開されるわけではないことに注意してください。Data オブジェクトに詳細情報がある場合もあります。
PowerTools を見てみましょう。これには、SDL Tridion のすべてのアイテム用の ItemXML ビューアー (Robert 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);
});
}
};
CoreService を介してアイテム XML を取得できますが、これは Tridion R6 (2011) Xml 形式を取得します。これは以前に表示されたものとは異なります。
サンプルコードはこちらから入手できます。
Tcm サーバーに "GetItemXml.aspx" ページを配置し、Uri をパラメーターとして呼び出すと、このページがアイテム Xml を返すことがよくあります。