替换InValid XML文件中的空格

时间:2009-11-10 16:43:18

标签: c# xml

我的问题

首先我有一个带有无效语法的xml文件,第二个我无法做任何改变它,因为公司正在提供xml。

我有需要释放空间的元素节点,我怎样才能做到这一点VIA C#.NET

我也可以选择通过CSV格式获取数据,认为将值替换为CSV而不是某些XML String可能更容易,但我只是不知道如何或最好的方式。 / p>

示例

提供: <Avg Pos> value </Avg Pos>

必需: <AvgPos> value </AvgPos>

4 个答案:

答案 0 :(得分:0)

您可能会更好地获取CSV,因为他们为您提供的XML格式不正确。在XML中,由于标记命名的工作方式,“TagName”和“Tag Name”之间存在巨大差异。听起来他们提供的是完全无效的XML(根据你给出的例子,没有XML客户端能够正确读取它);您应该尝试让他们更正错误,但如果他们不能/不能,请尝试处理CSV。

答案 1 :(得分:0)

你最好告诉他们XML的真正含义,因为你在那里发布的东西远离任何有权被称为XML的东西......

在这种情况下,请转到CSV,读取每一行并删除空格(例如_Row.Replace(" ", "");),将其保存在新的.XML中,您应该好好去。

答案 2 :(得分:0)

如果标签内部没有任何属性,您可以:

  1. 找出所有元素名称
  2. 确定其格式错误的打开和关闭标记等效。
  3. 在整个文档中将所有格式错误的标记替换为格式良好的标记
  4. 但如果我的雇主给了我这些东西并说它是XML,我知道是时候换工作了。

答案 3 :(得分:0)

这真的是我想要的......

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价值就是我所需要的!