Заменить пробелы в XML-файле InValid - PullRequest
1 голос
/ 10 ноября 2009

Мой вопрос

Во-первых, у меня есть XML-файл с неверным синтаксисом, во-вторых, я ничего не могу сделать, чтобы изменить его, из-за компании, которая предоставляет XML.

У меня есть узлы элементов, которые мне нужны, чтобы выделить пространство, как я могу это сделать VIA C # .NET

У меня также есть возможность получать данные в формате CSV, полагая, что может быть проще заменить значения как CSV, а не как какую-то XML-строку, но я просто не знаю, как или как лучше.

Пример

При условии: <Avg Pos> value </Avg Pos>

Обязательно: <AvgPos> value </AvgPos>

Ответы [ 4 ]

0 голосов
/ 12 ноября 2009

Это было действительно то, что я искал ...

iReportPath

TextReader origXML = new StreamReader(iReportPath + iFileName);

string validXMLString = HttpContext.Current.Server.HtmlEncode(origXML.ReadToEnd().ToString());

validXMLString = validXMLString.Replace("Avg Pos", "AvgPos");

validXMLString = validXMLString.Replace("Avg CPC", "AvgCPC");

validXMLString = validXMLString.Replace("Gr. Rev", "Gr.Rev");

validXMLString = HttpContext.Current.Server.HtmlDecode(validXMLString);

origXML.Close();

validXMLString значение - это то, что мне нужно!

0 голосов
/ 10 ноября 2009

Вам лучше рассказать им, что на самом деле означает XML, потому что то, что вы разместили там, далеко от всего, что имеет право называться XML ...

В этом случае, перейдите к CSV, прочитайте в каждой строке и уберите пробелы (например, _Row.Replace(" ", "");), сохраните его в новом .XML, и вам будет хорошо.

0 голосов
/ 10 ноября 2009

Если у вас никогда не было атрибутов внутри тегов, вы можете:

  1. выяснить все имена элементов
  2. определяет эквивалент их неправильно сформированной открытой и закрытой метки.
  3. заменить все искаженные метки их хорошо сформированным эквивалентом во всем документе

Но если бы мой работодатель дал мне этот материал и сказал, что это XML, я бы знал, что пришло время менять работу.

0 голосов
/ 10 ноября 2009

Вам, вероятно, будет лучше получить CSV, потому что XML-код, который они вам подают, искажен. В XML, из-за способа именования тегов, существует большая разница между «TagName» и «Tag Name». Похоже, они поставляют совершенно недопустимый XML (ни один XML-клиент не сможет прочитать это правильно, в соответствии с приведенным вами примером); вы должны попытаться заставить их исправить ошибку, но если они этого не сделают, попробуйте разобраться с CSV.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...