我试图将解析后的XML元素插入到TextWriter WriteLine的中间,而不会导致添加变量的换行符,但是没有成功。该程序的目的是将XML文件转换为X12 850 EDI格式的.txt文件,我需要保留WriteLine方法所规定的行。我不确定这是进行翻译的最有效方式,因为我只有一周进入我的C#职业生涯,但我使用xslt文件的其他尝试都被证明效率低下。任何指导将不胜感激。以下是我的翻译的代码。
class Class1
{
public static void Main()
{
StringBuilder name = new StringBuilder();
String xmlString = ("3.xml");
using (XmlReader reader = XmlReader.Create(new StreamReader(xmlString)))
{
reader.ReadToFollowing("Name");
name.AppendLine(reader.ReadElementContentAsString());
}
using (StreamWriter sw = new StreamWriter("test5.txt"))
{
sw.WriteLine("ISA*00* *00* *ZZ*daisywebstore *12*5016361200 *11213*1022*U*00400*000001649*0*P*>~");
sw.WriteLine("GS*PO*9254291001*5016361200*20111213*1022*1649*X*004010~");
sw.WriteLine("ST*850*0001~");
sw.WriteLine("BEG*00*SA*08272225944**20111213~");
sw.WriteLine("REF*DP*089~");
sw.WriteLine("DTM*002*20120104~");
sw.WriteLine("N1*ST*" + name + "~");
sw.WriteLine("N3*1400 S MC CARREN BLVD~");
sw.WriteLine("SN4*SPARKS*NV*894316301~");
sw.WriteLine("N1*RE**92*00103653341~");
sw.WriteLine("PO1*1*6*EA*33.28*TE*IN*081643211*UP*30039256056937~");
sw.WriteLine("PID*F****CO2 BB PISTOL $ 5693~");
sw.WriteLine("PO4*3*1*EA~");
sw.WriteLine("CTT*1~");
sw.WriteLine("AMT*1*199.68~");
sw.WriteLine("SE*16*0001~");
}
}
}
}
答案 0 :(得分:3)
你在做什么
name.AppendLine(reader.ReadElementContentAsString())
您应该指定添加新行。也许只是尝试
name.Append(reader.ReadElementContentAsString())
代替?
编辑: 虽然名字似乎根本不是一个字符串构建者。也许只是把它变成一个字符串?
在这种情况下你可以做到
name = reader.ReadElementContentAsString()