Sto creando un TBB C#. Ho il codice XML come mostrato di seguito.Come aggiungere dll di terze parti in Tridion per 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>
codice 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())));
}
Nel tag di codice XML "corpo" si è verificato più volte. Devo estrarre ogni singolo contenuto del tag "body". Per quello scopo sto usando il pacchetto agility HTML. Per farlo funzionare in C# TBB, Come aggiungere la DLL del pacchetto di agilità HTML al sistema Tridion? Inoltre, fornire uno snippet di codice di esempio in agilità html per scorrere i tag del corpo.
Se HTML Agility non funzionerà con C# TBB, quindi mi suggerisca un modo per ottenere il contenuto del tag "body"?
Grazie in anticipo. La risposta anticipata è apprezzata.
Sì, puoi, e ho buone esperienze con questo.L'unica ragione per cui non l'ho menzionato, è che l'unione della propria DLL con una DLL di terze parti potrebbe facilmente portare alla violazione del copyright. Finché sei sicuro che non sarà un problema, potresti usare anche questo approccio. Fornirò maggiori dettagli in una risposta separata. – Quirijn
Non penso che ci sia un problema di copyright. Il copyright riguarda il codice sorgente. Se qualcuno non vuole che il loro IL venga utilizzato, non dovrebbe spedire una DLL di assemblaggio, perché questo è effettivamente il trasporto dell'IL. Certo, potresti violare le condizioni della licenza, ma questo è un altro problema, e non ho mai visto una condizione che vieti questa tecnica. Sul lato negativo, l'utilizzo di ILMerge può causare alcuni effetti collaterali sgradevoli. Recentemente ho avuto un problema con un aggiornamento rapido di Tridion che AFAIK si sarebbe presentato solo con un approccio ILMerge –