Tworzę C# TBB. Mam kod XML, jak pokazano poniżej.Jak dodać dll strony trzeciej w Tridion dla C# TBB?
<content>
<ah>123</ah>
<ph>456</ph>
<body>
<sc>hi</sc>
<value>aa</value>
<value>bb</value>
<value>cc</value>
<value>dd</value>
<value>dd</value>
</body>
<body>
<sc>hello</sc>
<value>ee</value>
<value>ddff</value>
</body>
</content>
kod C# TBB:
using (MemoryStream ms = new MemoryStream())
{
XmlTextWriter securboxXmlWriter = new XmlTextWriter(ms, new System.Text.UTF8Encoding(false));
securboxXmlWriter.Indentation = 4;
securboxXmlWriter.Formatting = Formatting.Indented;
securboxXmlWriter.WriteStartDocument();
securboxXmlWriter.WriteStartElement("component");
securboxXmlWriter.WriteAttributeString("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
securboxXmlWriter.WriteAttributeString("xmlns", "http://www.w3.org/1999/xhtml");
securboxXmlWriter.WriteStartElement("content");
securboxXmlWriter.WriteStartElement("wire:wire");
securboxXmlWriter.WriteStartElement("wire:si");
securboxXmlWriter.WriteStartElement("wg:ah");
securboxXmlWriter.WriteElementString("text", package.GetValue("Component.ah"));
securboxXmlWriter.WriteEndElement();
securboxXmlWriter.WriteStartElement("wg:ph");
securboxXmlWriter.WriteElementString("nlt", package.GetValue("Component.ph"));
securboxXmlWriter.WriteEndElement();
securboxXmlWriter.WriteEndElement();
securboxXmlWriter.WriteEndElement();
securboxXmlWriter.WriteEndElement();
securboxXmlWriter.WriteEndElement();
securboxXmlWriter.WriteEndDocument();
securboxXmlWriter.Flush();
securboxXmlWriter.Close();
Item output = package.GetByName("Output");
if (output != null)
{
package.Remove(output);
}
package.PushItem("Output", package.CreateStringItem(ContentType.Xml, Encoding.UTF8.GetString(ms.ToArray())));
}
w kodzie XML tagu "body" jest wystąpił wielokrotnie. Muszę wyodrębnić treść każdego tagu "body". W tym celu używam pakietu agility HTML. Aby działał w C# TBB, Jak dodać DLL pakietu agility HTML do systemu Tridion? A także proszę podać przykładowy fragment kodu w zwinności html, aby przeglądać tagi treści.
Jeśli agencja HTML nie będzie działać z C# TBB, to proszę zasugerować mi, jak uzyskać treść tagu "body"?
Z góry dzięki. Wczesna reakcja jest doceniana.
Tak, można i mam z tym dobre doświadczenia.Jedynym powodem, dla którego o tym nie wspomniałem, jest to, że połączenie własnej biblioteki DLL z biblioteką DLL innej firmy może łatwo doprowadzić do naruszenia praw autorskich. Tak długo, jak jesteś pewien, że to nie będzie problem, możesz również użyć tego podejścia. Przekażę więcej szczegółów w osobnej odpowiedzi. – Quirijn
Nie sądzę, że istnieje problem praw autorskich. Prawa autorskie dotyczą kodu źródłowego. Jeśli ktoś nie chce, aby ich IL było używane, nie powinni wysyłać biblioteki DLL zespołu, ponieważ to faktycznie wysyła IL. Oczywiście, możesz naruszyć warunki licencji, ale to jest inna kwestia, i nigdy nie widziałem warunku, który zakazuje tej techniki. Z drugiej strony, użycie ILMerge może powodować nieprzyjemne efekty uboczne. Ostatnio miałem problem z poprawką Tridiona, którą AFAIK pojawiłby się tylko przy użyciu podejścia ILMerge –