У меня есть XML пары гигабайт. В XML нет пробелов.Как я могу использовать XmlReader в PowerShell для потоковой передачи больших/больших XML-файлов?
Так что я написал небольшую C# код для разделения в отдельных файлах (который имеет дополнительный код для выполнения некоторых вещей, например, рандомизации во время тестирования)
using (XmlReader MyReader = XmlReader.Create(@"d:\xml\test.xml"))
{
while (MyReader.Read())
{
switch (MyReader.NodeType)
{
case XmlNodeType.Element:
if (MyReader.Name == "Customer")
{
XElement el = XElement.ReadFrom(MyReader) as XElement;
if (el != null)
{
custNumber = (string)el.Element("CustNumber");
output = @"d:\xml\output\" + custNumber;
File.WriteAllText(output, el.ToString());
}
}
break;
}
}
}
я тогда анализировать полученные файлы с помощью PowerShell, в основном потому, что я проще работать с сервером, тогда как спецификации могут меняться, и я могу на лету сменить сценарий.
Итак ... что является самым простым способом конвертировать вышеуказанное в PowerShell, а также помещать [.Net здесь] раньше всего? должен ли я читать байт для байта только в том случае, если он имеет "<cust"
на одной строке и "omer>"
на следующем?
Если бы переместить переключатель в положение а, если ($ f.NodeType -eq [Syste ,,,) и, что интересно, в PowerShell было для использования. Значение элемента, противоположного C#. – edelwater
@edelwater: добавление скобок вокруг опции переключателя зафиксировано. – Wouter