Tagi na forum.

C# 1456 XML 282
SQL 1192 sieci 268
ASP.NET 785 IIS 262
Windows 726 C++ 255
web 608 Html 218
Visual Studio 515 Information Technology 193
SQL Server 425 MSDN 167

pokaż wszystkie tagi na forum

Jak osadzić niestandardowy znak

Lasoty 2011-08-11 11:20:37
0
avatar
 
 
Witam, mam problem, otóż za pomocą dokumentu XML muszę przesłać do programu kilka niestandardowych znaków, niestety po próbie osadzenia ich w stringu, a potem odczytania za pomocą metody XmlLoad dostaję taki komunikat:

Element ' ', szesnastkowa wartość 0x1D, jest nieprawidłowym znakiem. wiersz 2, pozycja 1.

a jest to konieczne, by ten znak przesłać. Jak to zrobić. Poniżej kod osadzania:
 



[Kod]
sb = new StringBuilder();
sb.AppendLine();

string hex = "1D";
for (int i = 0; i <= hex.Length - 2; i += 2)
{
sb.Append(Convert.ToString(Convert.ToChar(Int32.Parse(hex.Substring(i, 2), System.Globalization.NumberStyles.HexNumber))) + "B" + "\\\u0000");
}
sb.AppendLine("AAAAAA");
hex = "1D";
for (int i = 0; i <= hex.Length - 2; i += 2)
{
sb.Append(Convert.ToString(Convert.ToChar(Int32.Parse(hex.Substring(i, 2), System.Globalization.NumberStyles.HexNumber))) + "B" + "\\\u0001");
}
sb.AppendLine("BBBBB");

string sXml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Etykieta><ModelDrukarki>EP-50</ModelDrukarki><JezykDrukarki>ep50</JezykDrukarki><Wiadomosc>"+ sb.ToString() +"</Wiadomosc></Etykieta>";
return sXml;




Edytowano 1 raz. Ostatnio 2011-08-11 11:21:22 przez Lasoty.
tagi: XML

LNX::RLZ



m.iwanowski  2011-08-11 11:27:49 #1
0
avatar
 
 
Możesz użyć sekcji CDATA:
<![CDATA[jakiś tekst]]>--Pozdrawiam
Marcin Iwanowski
 
...::: Jeżeli mój post Ci pomógł, kliknij "Pomógł mi" :::...

Pozdrawiam

Marcin Iwanowski

 

...::: Jeżeli mój post jest rozwiązaniem Twojego problemu, kliknij "Rozwiązanie" :::...

Lasoty  2011-08-11 11:44:05 #1.1
0
avatar
 
 
Niestety po przerobieniu stringa na :



[Kod]
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><Etykieta><ModelDrukarki>tpl1</ModelDrukarki><JezykDrukarki>ep50</JezykDrukarki><Wiadomosc><![CDATA[" + sb.ToString() + "]]></Wiadomosc></Etykieta>"




dostaję dokładnie ten sam komunikat. A właśnie, chodziło mi o metodę LoadXml z klasy XmlDocument.

Edytowano 1 raz. Ostatnio 2011-08-11 11:44:25 przez Lasoty.

LNX::RLZ

m.iwanowski  2011-08-11 12:17:55 #1.1.1
0
avatar
 
 
Faktycznie znak który chcesz wprowadzić jest nielegalny w XML'u, niezgodny ze specyfikacją, tutaj masz link do specyfikacji jakie znaki można przesyłać xml'em.
Jeżeli mimo wszystko chcesz przesyłać taki znak to musisz sobie go zakodować a potem po drugiej stronie odkodować.--Pozdrawiam
Marcin Iwanowski
 
...::: Jeżeli mój post Ci pomógł, kliknij "Pomógł mi" :::...

Pozdrawiam

Marcin Iwanowski

 

...::: Jeżeli mój post jest rozwiązaniem Twojego problemu, kliknij "Rozwiązanie" :::...

szogun.krepa  2011-08-11 13:11:09 #2
0
avatar
 
 
Pomyśl może nad użyciem klasy XmlWriter/XmlDocument jeżeli stringbuildera używasz ze względu na wydajność to możesz wykorzystać klasę HttpUtility a dokładnie metodę HtmlEncode--if (PomoglCi)
{
Click("Pomógł mi");
}
Strona szoguna

if (PomoglCi)

{

Click("Pomógł mi");

}

Strona szoguna

Udziel odpowiedzi

avatar
Treść wpisu:

Zaloguj się lub Zarejestruj się aby wykonać tę czynność.

Idź na górę strony