Estoy creando un C# TBB. Tengo el código XML como se muestra a continuación.¿Cómo agregar dll de terceros en Tridion para 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>
código 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())));
}
En la etiqueta de código XML "cuerpo" se ha producido varias veces. Necesito extraer el contenido de cada etiqueta "corporal". Para ese propósito estoy usando HTML agility pack. Para que funcione en C# TBB, ¿cómo agregar el archivo HTML agility pack al sistema Tridion? Y también proporcione un fragmento de código de muestra en html agility para recorrer las etiquetas del cuerpo.
Si HTML Agility no va a funcionar con C# TBB, sugiérame una forma de obtener el contenido de la etiqueta "body".
Gracias de antemano. Se agradece la respuesta temprana.
Sí, puedes, y tengo buenas experiencias con eso.La única razón por la que no lo mencioné, es que la fusión de su propia DLL con una DLL de terceros podría conducir fácilmente a la infracción de los derechos de autor. Mientras esté seguro de que eso no va a ser un problema, podría usar ese enfoque también. Proporcionaré más detalles en una respuesta separada. – Quirijn
No creo que haya un problema de derechos de autor. Los derechos de autor son sobre el código fuente. Si alguien no quiere que se use su IL, no debe enviar una DLL de ensamblaje, porque eso efectivamente envía la IL. Por supuesto, podría estar violando las condiciones de la licencia, pero ese es otro problema, y nunca he visto una condición que prohíba esta técnica. En el lado negativo, usar ILMerge puede causar algunos efectos secundarios desagradables. Recientemente tuve un problema con una revisión de Tridion que AFAIK solo mostraría con un enfoque de ILMerge –