Я пытаюсь преобразовать HTML в XML, где мой HTML выглядит следующим образом:
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<A Name='name">Udaya</A>
<A Name="Age">20</A>
</BODY>
</HTML>
Теперь в моем компоненте .NET мне удалось изменить это на XML, который выглядит следующим образом:
<ns0:CHTML xmlns:nso='http://CHTML'>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<ANamename>Udaya</A>
<ANameAge>20</A>
</BODY>
</HTML>
</CHTML>
Все работает хорошо, кроме содержимого тега body, где начальный тег не совпадает с конечным тегом, содержимое тега body должно быть таким, как показано ниже.Для удобства я показываю только тег body ниже для ясного понимания:
<BODY>
<ANamename>Udaya</ANamename>
<ANameAge>20</AANameAge>
</BODY>
Здесь я объясняю, как мне удалось это сделать в моей библиотеке классов:
public void Disassemble(IPipelineContext pContext, IBaseMessage pInMsg)
{
string originalDataString;
try
{
//fetch original message
Stream originalMessageStream = pInMsg.BodyPart.GetOriginalDataStream();
byte[] bufferOriginalMessage = new byte[originalMessageStream.Length];
originalMessageStream.Read(bufferOriginalMessage, 0, Convert.ToInt32(originalMessageStream.Length));
originalDataString = System.Text.ASCIIEncoding.ASCII.GetString(bufferOriginalMessage);
}
catch (Exception ex)
{
throw new ApplicationException("Error in reading original message: " + ex.Message);
}
HtmlAgilityPack.HtmlDocument originalMessageDoc = new HtmlAgilityPack.HtmlDocument();
string[] Find ={ "À", "Â", "Æ", "Ç", "È", "É","Ê", "Ë", "Î", "Ï", "Ô", "Œ", "Ù", "Û", "Ü", "Ÿ","à", "â", "æ", "ç", "è", "é", "ê", "ë", "î", "ï","ô", "œ", "ù", "û", "ü", "ÿ", "Ä", "É", "Ö", "Ü","ß", "ä", "é", "ö", "ü",",",".","&","<A name=","</A"};
string[] Replace ={ "À", "Â", "Æ", "Ç", "È", "É", "Ê", "Ë", "Î", "Ï",
"Ô", "Œ", "Ù", "Û", "Ü", "Ÿ", "à", "â", "æ", "ç",
"è", "é", "ê", "ë", "î", "ï", "ô", "œ", "ù", "û",
"ü", "ÿ", "Ä", "É", "Ö", "Ü", "ß", "ä", "é", "ö",
"ü", "" , "", "","<Aname","</Aname"};
for (int i = 0; i < Find.Length; i++)
{
originalDataString = originalDataString.Replace(Find[i], Replace[i]);
}
System.Diagnostics.EventLog.WriteEntry("Message", originalDataString);
StringBuilder messageString;
try
{
// load original message
string RootElement = "CWWHTML";
originalMessageDoc.LoadHtml(originalDataString);
messageString = new StringBuilder();
StreamWriter SW = new StreamWriter("C:\\Documents and Settings\\biztalkuser\\Desktop\\Test\\OuputCWW\\Test1.txt");
messageString.Append("<" + "ns0:" + RootElement + " " + "xmlns:ns0='" + "http://CWWProject.Schema1'" + ">");
messageString.Append(originalDataString);
messageString.Append("</" + "ns0:CWWHTML" + ">");
SW.WriteLine(messageString.ToString());
SW.Close();
CreateOutgoingMessage(pContext, messageString.ToString(), "http://CWWProject.Schema1");
}
Может любойподскажите, какие изменения я должен внести для достижения желаемого результата в теге body
?