我是C#编程的新手,我要做的是从Dynamics中获取一些我没有问题的数据,然后通过方法将它传递给Visual Studio类,所有这些都是为了创建XML具体结构和财政数据。
XML结构:
<Catalogo Version="1.0" RFC="SIN120706RX7" TotalCtas="98" Mes="07" Ano="2014">
<Ctas CodAgrup="1" NumCta="100" Desc="CAJA" Nivel="1" Natur="D"/>
<Ctas CodAgrup="2" NumCta="120" Desc="BANCOS" Nivel="1" Natur="D"/>
<Ctas CodAgrup="2.1" NumCta="1200001" Desc="BANCOMER CTA 0190864250" SubCtaDe="120" Nivel="2" Natur="D"/>
...
</Catalogo>
我已经为带有x数据的XML创建了以下代码,这段代码应该在一个类中,因为它将是一个dll:
XmlWriter xmlWriter = XmlWriter.Create("periodo.xml");
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("Catalogo"); ///set once
xmlWriter.WriteAttributeString("Version", "X");
xmlWriter.WriteAttributeString("RFC", "X");
xmlWriter.WriteAttributeString("TotalCtas", "X");
xmlWriter.WriteAttributeString("Mes", "X");
xmlWriter.WriteAttributeString("Ano", "X");
xmlWriter.WriteStartElement("Ctas"); /// vary depending on the mounth.
xmlWriter.WriteAttributeString("CodAgrup", "X");
xmlWriter.WriteAttributeString("NumCta", "X");
xmlWriter.WriteAttributeString("Desc", "X");
xmlWriter.WriteAttributeString("Nivel", "X");
xmlWriter.WriteAttributeString("Natur", "X");
xmlWriter.WriteEndElement();
xmlWriter.WriteEndDocument();
xmlWriter.Close();
Catalogo
元素只设置一次,但Ctas element
可以根据当月的活动改变行数,因此我需要for
循环才能插入行数可变?
这是否可以插入我从Dynamics获得的数据,还是需要2种方法?一个用于Catalogo
元素,另一个用于ctas element
?我怎么能这样做?
修改
我刚刚创建了一个从查询中获取字符串的方法:
public void Addcuentas(string[] addct)
{
int i;
int j;
int n = 4;// variable numer of rows
string[] addcta = new string[n * 5]; // there is always be 5 columns
// save data
for (i = 0; i < n; i++)
{
for (j = 0; j < 5; j++)
{
addcta[i * j] = cata[j];
}
}
}
我尝试使用代码填充XML:
for (i = 0; i < n; i++)
{
for (j = 0; j < 5; j++)
{
xmlWriter.WriteStartElement("Ctas");
xmlWriter.WriteAttributeString("CodAgrup", (addcta[i * j]));
xmlWriter.WriteAttributeString("NumCta", (addcta[i * (j + 1)]));
xmlWriter.WriteAttributeString("Desc", (addcta[i * (j + 2)]));
xmlWriter.WriteAttributeString("Nivel", (addcta[i * (j + 3)]));
xmlWriter.WriteAttributeString("Natur", (addcta[i * (j + 4)]));
xmlWriter.WriteEndElement();
}
}
但是我真的不知道自己错误的是因为XML无法创建,不知道它的方法或方式我是否正在尝试填充XML,欢迎任何帮助和建议。