В вашем XSL есть 2 ошибки:
<xsl:value-of select="FcstPeriods/Period/Paragraph"/>
никогда ничего не выберет, потому что <RegionalFcst>
и все его дочерние элементы находятся в пространстве имен (xmlns="www.metoffice.gov.uk/xml/metoRegionalFcst"
). <xsl:template match="/">
не будет соответствовать <RegionalFcst>
, но он будет соответствовать его родительскому элементу (невидимому). <RegionalFcst>
- это первый и единственный дочерний элемент /
. Чтобы ваш XSL работал правильно, он должен выглядеть следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<xsl:value-of select="*[local-name()='RegionalFcst']/*[local-name()='FcstPeriods']/*[local-name()='Period']/*[local-name()='Paragraph']"/>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Выведите \ r
, чтобы вернуться в начало строки (но не печатайте новую строку!)
Например:
using System;
using System.Threading;
class Test
{
static void Main()
{
for (int i=0; i <= 100; i++)
{
Console.Write("\r{0}%", i);
Thread.Sleep(50);
}
}
}
Вы можете использовать:
Console.SetCursorPosition();
, чтобы правильно установить положение.
Вроде так:
Console.Write("Hello : ");
for(int k = 0; k <= 100; k++){
Console.SetCursorPosition(8, 0);
Console.Write("{0}%", k);
System.Threading.Thread.Sleep(50);
}
Console.Read();