Tôi đang tạo C# TBB. Tôi có mã XML như hình dưới đây.Làm thế nào để thêm dll bên thứ ba trong Tridion cho 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# mã 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())));
}
Trong đoạn mã XML tag "cơ thể" đang xảy ra nhiều lần. Tôi cần trích xuất từng nội dung thẻ "nội dung". Vì mục đích đó, tôi đang sử dụng gói nhanh nhẹn HTML. Để làm cho nó hoạt động trong C# TBB, Làm thế nào để thêm gói HTML nhanh nhẹn DLL vào hệ thống Tridion? Và cũng vui lòng cung cấp đoạn mã mẫu trong tính linh hoạt html để lặp qua các thẻ body.
Nếu HTML Agility sẽ không hoạt động với C# TBB thì vui lòng đề xuất cho tôi cách tải nội dung thẻ "body"?
Cảm ơn trước.Kết quả phản hồi tích cực được đánh giá cao.
Có thể, và tôi có kinh nghiệm tốt với điều đó.Lý do duy nhất tại sao tôi không đề cập đến nó, là việc sáp nhập DLL của riêng bạn với một DLL của bên thứ ba có thể dễ dàng dẫn đến vi phạm bản quyền. Miễn là bạn chắc chắn rằng đó không phải là vấn đề, bạn cũng có thể sử dụng phương pháp đó. Tôi sẽ cung cấp thêm chi tiết trong một câu trả lời riêng biệt. – Quirijn
Tôi không nghĩ có vấn đề về bản quyền. Bản quyền là về mã nguồn. Nếu ai đó không muốn IL của họ được sử dụng, họ không nên gửi một DLL lắp ráp, bởi vì đó là hiệu quả vận chuyển IL. Tất nhiên, bạn có thể vi phạm các điều kiện cấp phép, nhưng đó là một vấn đề khác, và tôi chưa bao giờ thấy một điều kiện cấm kỹ thuật này. Về phía xuống, sử dụng ILMerge có thể gây ra một số tác dụng phụ khó chịu. Gần đây tôi đã gặp sự cố với hotfix Tridion mà AFAIK sẽ chỉ xuất hiện với phương pháp tiếp cận ILMerge –