В Python 2 можно сделать:
print "%02d" % (1,)
В основном % похож printf
или sprintf
.
Для Python 3. + то же поведение может быть достигнуто с:
print("{:02d}".format(1))
<час> Для Python 3.6 + то же поведение может быть достигнуто со струнами фа:
print(f"{1:02d}")
public static string XmlEscape(string unescaped)
{
XmlDocument doc = new XmlDocument();
XmlNode node = doc.CreateElement("root");
node.InnerText = unescaped;
return node.InnerXml;
}
public static string XmlUnescape(string escaped)
{
XmlDocument doc = new XmlDocument();
XmlNode node = doc.CreateElement("root");
node.InnerXml = escaped;
return node.InnerText;
}
Джордж, это просто. Всегда используйте XML API для обработки XML. Они делают все экранирование и отмену экранирования за вас.
Никогда не создавайте XML, добавляя строки.
EDIT: вы говорите: «Я объединяю простой и короткий XML-файл, и я не использовать сериализацию, поэтому мне нужно явно экранировать символ XML вручную ».
Я бы настоятельно не советовал вам делать это вручную. Используйте XML API, чтобы сделать все это за вас - прочтите исходные файлы, объедините их в один документ, как вам нужно (вы, вероятно, захотите использовать XmlDocument.ImportNode
), а затем запишите его. еще раз. Вы не хотите писать свои собственные анализаторы / средства форматирования XML. Сериализация здесь несколько неактуальна.
Если вы дадите нам короткий, но полный пример того, что именно вы пытаетесь сделать, мы, вероятно, сможем помочь вам вообще не беспокоиться о побеге.
Оригинал answer
Не совсем понятно, что вы имеете в виду, но обычно XML API делают это за вас. Вы устанавливаете текст в узле, и он автоматически избегает всего, что ему нужно. Например:
Пример LINQ to XML:
using System;
using System.Xml.Linq;
class Test
{
static void Main()
{
XElement element = new XElement("tag",
"Brackets & stuff <>");
Console.WriteLine(element);
}
}
Пример DOM:
using System;
using System.Xml;
class Test
{
static void Main()
{
XmlDocument doc = new XmlDocument();
XmlElement element = doc.CreateElement("tag");
element.InnerText = "Brackets & stuff <>";
Console.WriteLine(element.OuterXml);
}
}
Вывод обоих примеров:
<tag>Brackets & stuff <></tag>
Это, конечно, при условии, что вы хотите экранировать XML. Если нет, опубликуйте подробности.
Не совсем понятно, что вы имеете в виду, но обычно XML API делают это за вас. Вы устанавливаете текст в узле, и он автоматически избегает всего, что ему нужно. Например:Пример LINQ to XML:
using System;
using System.Xml.Linq;
class Test
{
static void Main()
{
XElement element = new XElement("tag",
"Brackets & stuff <>");
Console.WriteLine(element);
}
}
Пример DOM:
using System;
using System.Xml;
class Test
{
static void Main()
{
XmlDocument doc = new XmlDocument();
XmlElement element = doc.CreateElement("tag");
element.InnerText = "Brackets & stuff <>";
Console.WriteLine(element.OuterXml);
}
}
Вывод обоих примеров:
<tag>Brackets & stuff <></tag>
Это, конечно, при условии, что вы хотите экранировать XML. Если нет, опубликуйте подробности.
Не совсем понятно, что вы имеете в виду, но обычно XML API делают это за вас. Вы устанавливаете текст в узле, и он автоматически избегает всего, что ему нужно. Например:Пример LINQ to XML:
using System;
using System.Xml.Linq;
class Test
{
static void Main()
{
XElement element = new XElement("tag",
"Brackets & stuff <>");
Console.WriteLine(element);
}
}
Пример DOM:
using System;
using System.Xml;
class Test
{
static void Main()
{
XmlDocument doc = new XmlDocument();
XmlElement element = doc.CreateElement("tag");
element.InnerText = "Brackets & stuff <>";
Console.WriteLine(element.OuterXml);
}
}
Вывод обоих примеров:
<tag>Brackets & stuff <></tag>
Это, конечно, при условии, что вы хотите экранировать XML. Если нет, опубликуйте подробности.