我将其发布为一个想法-尽管我无法让它完全按照您的意愿行事。我已经编写了一个 EventHandler 来操作 XMLSpy 收到的 XML(以及此时包括 CME 在内的所有客户端)
using System;
using System.Text;
using System.Xml;
using Tridion.ContentManager.Extensibility.Events;
using Tridion.ContentManager.Extensibility;
using Tridion.ContentManager.ContentManagement;
using System.IO;
namespace UrbanCherry.Net.SDLTridion.EventHandlers
{
[TcmExtension("AppendAuthenticHeaders")]
public class AppendAuthenticHeaders : TcmExtension
{
public AppendAuthenticHeaders()
{
Subscribe();
}
public void Subscribe()
{
EventSystem.Subscribe<Component, LoadEventArgs>(AppendAuthenticHeader, EventPhases.Processed);
}
private void AppendAuthenticHeader(Component source, LoadEventArgs args, EventPhases phase)
{
if (source.ComponentType != ComponentType.Multimedia)
{
XmlDocument newXml = new XmlDocument();
newXml.LoadXml("<?altova_sps C:\\Users\\src\\sps\\2012\\spsfile.sps?>" + source.Content.OuterXml);
source.Content = newXml.DocumentElement;
}
}
}
}
我尝试操作输出(通过替换字符串),它确实通过 WebDAV 显示在 XMLSpy 中。我遇到的问题是添加处理指令不在 DocumentElement 范围内,因此永远不要将其添加到新的 XML 中。
所以我知道这并不能解决您的挑战 - 但也许其他人知道一个事件,当通过 WebDAV 磁带以类似方式加载 XML 时,该事件将允许您附加指令。
希望其他人可以帮助您关闭这个 - 如果我有时间,我会再挖掘一点