Witam. Mam prosty kod napisany w C#. Jedna z funkcji zwraca mi wartość: "<lat>50.123456</lat>" jako XElement. Czy jesz możliwość usunięcia <lat> i </lat> i przekonwertowanie tej liczby na zmienną double? Z góry dziękuję za pomoc.
0
1
Double.Parse(element.Value);
1
z XElement możesz wyciągnąć wartość poprzez .Value
później trzeba jeszcze skonwertować : Convert.ToDouble()
a ponieważ w tym ciągu masz znak "." a nie "," to trzeba będzie użyć Replace()
2
Nigdy w życiu Replace().
Convert.ToDouble(element.Value, System.Globalization.CultureInfo.InvariantCulture);
Pozdrawiam.
2
string sb = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
"<foo>" +
" <lata>" +
" <lat>50.123456</lat>" +
" <lat>51.123456</lat>" +
" <lat>52.123456</lat>" +
" <lat>53.123456</lat>" +
" </lata>" +
"</foo>";
var xdoc = XDocument.Parse(sb);
var ageList = xdoc.Descendants("lat");
foreach (var age in ageList)
{
double d = double.Parse(age.Value, CultureInfo.InvariantCulture);
Console.WriteLine(d);
}
0
Dzięki za pomoc. Tylko, że gdy używam tej funkcji to wyskakuje taki błąd podczas wprowadzania danych do programu.
An unhandled exception of type 'System.FormatException' occurred in mscorlib.dll
Additional information: Input string was not in a correct format.
double zmienna = Convert.ToDouble( Double.Parse(variable_1.Value), System.Globalization.CultureInfo.InvariantCulture);
i
double zmienna = Convert.ToDouble( Double.Parse(variable_1.Value) );
Gdzie w variable_1 jest ten element do zamiany.
@DibbyDum wartość nie jest podana w stringu tylko XElement.
0
kubek66 napisał(a):
@DibbyDum wartość nie jest podana w stringu tylko XElement.
He?
string sb = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
"<foo>" +
" <lata>" +
" <lat>50.123456</lat>" +
" <lat>51.123456</lat>" +
" <lat>52.123456</lat>" +
" <lat>53.123456</lat>" +
" </lata>" +
"</foo>";
XDocument xdoc = XDocument.Parse(sb);
IEnumerable<XElement> ageList = xdoc.Descendants("lat");
foreach (XElement age in ageList)
{
double d = double.Parse(age.Value, CultureInfo.InvariantCulture);
Console.WriteLine(d);
}
0
A nie, przepraszam. Wszystko dziala. Dziekuje za pomoc :D