將靜態列轉換為 xml 沒有問題問題是我試圖通過陣列進行轉換并在每次需要時插入它您可以將回圈添加到 XElement
string creatColumnXml(params int[] ColId)
{
return new XElement(table.TableName, table.Rows.Cast<DataRow>().Select(row =>
new XElement("row",
//for ( int i =0;i<ColId.Length;i )
//new XElement(table.Columns[ColId[i]].ColumnName, row[ColId[i]]),
new XElement(table.Columns[0].ColumnName, row[0]),
new XElement(table.Columns[1].ColumnName, row[1]),
new XElement(table.Columns[2].ColumnName, row[2])
))
).ToString();
}
uj5u.com熱心網友回復:
我找到了解決方案
XElement[] c = new XElement[ColId.Length];
XElement[] r = new XElement[table.Rows.Count];
int y = 0;
string s="" ;
foreach (DataRow row in table.Rows)
{
for (int i = 0; i < ColId.Length; i )
{
c[i] = new XElement(table.Columns[ColId[i]].ColumnName, row[ColId[i]]);
}
r[y] = new XElement("row",c);
y ;
}
s = new XElement(table.TableName, r).ToString();
uj5u.com熱心網友回復:
您可以在現有的 lambda 中再次使用 LINQ
string creatColumnXml(params int[] ColId)
{
return new XElement(table.TableName,
table.Rows.Cast<DataRow>().Select(row =>
new XElement("row",
ColId.Select(c => new XElement(table.Columns[c].ColumnName, row[c]))
)
).ToString();
}
uj5u.com熱心網友回復:
假設您從 DataSet 獲得 DataRows,您可以使用 DataSet.WriteXml 方法直接將 DataSet 轉換為 XML。
舉個例子,希望對大家有幫助。
DataSet MainDS = new DataSet();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = new SqlCommand( "select name, city, country from user" );
da.Fill(MainDS, "row");
XmlDocument xml = new XmlDocument();
using (MemoryStream ms = new MemoryStream()) {
try {
XmlWriterSettings settings = new XmlWriterSettings();
settings.Encoding = Encoding.UTF8;
settings.CheckCharacters = false;
using (XmlWriter xmlWriter = XmlWriter.Create(ms, settings)) {
MainDS.WriteXml(xmlWriter);
xmlWriter.Close();
}
ms.Position = 0;
xml.Load(ms);
} catch (Exception err) {
throw new Exception("Error loading dataset to xml", err);
}
}
從那里,使用 XSL 進行格式化。
您還可以指示 .NET 創建基于屬性的 XML。
foreach (System.Data.DataTable dt in ds.Tables) {
foreach (DataColumn dc in dt.Columns) {
dc.ColumnMapping = MappingType.Attribute;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/373585.html
上一篇:當節點名為<foo:bar>時,如何在XSLT中選擇節點?
下一篇:XMLXSD驗證中的全域宣告錯誤
