我正在尝试使用C#代码将XmlNodeList转换为xml文件。
我已经创建了xml文档,并从中检索了元素列表,现在我希望将该列表转换为xml文件。
<?php
$host = '127.0.0.1';
$db = 'alimcenter';
$user = 'root';
$pass = '';
$charset = 'utf8mb4';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
try {
// Create a new connection
$pdo = new PDO($dsn, $user, $pass, $options);
// Define your SQL statement with placeholders. Do not pass in variables here.
$sql = "INSERT INTO mat (REF, designation, qte, un, PU, rem, MONTANT, tva, puf)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE qte = qte + ?";
$stmt = $pdo->prepare($sql);
// Finally, bind your variables to the statement and execute it. There are a few ways to bind variables.
$stmt->execute([
$_POST['p1'],
$_POST['p2'],
$_POST['p3'],
$_POST['p4'],
$_POST['p5'],
$_POST['p6'],
$_POST['p7'],
$_POST['p8'],
$_POST['p9'],
$_POST['p1'], // this is the final (10th) placeholder in the "DUPLICATE KEY UPDATE" portion of the statement
]);
$count = $stmt->rowCount();
echo "Rows affected: {$count}";
} catch (\PDOException $e) {
throw new \PDOException($e->getMessage(), (int)$e->getCode());
}
下一步是将XmlNodeList转换为xml文件。 我该怎么办?
答案 0 :(得分:0)
这是一个简单的例子。
static void Main(string[] args)
{
try
{
var doc = new XmlDocument();
doc.Load("MyXmlFile.xml");
XmlNodeList contactList = doc.GetElementsByTagName("Contact");
SaveToFile(contactList);
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
}
static void SaveToFile(XmlNodeList nodeList)
{
var xmlBuilder = new StringBuilder();
xmlBuilder.Append("<Contacts>");
foreach (XmlNode node in nodeList)
{
xmlBuilder.Append(node.OuterXml);
}
xmlBuilder.Append("</Contacts>");
var doc = new XmlDocument();
doc.LoadXml(xmlBuilder.ToString());
doc.Save("contacts.xml");
}
答案 1 :(得分:0)
您确实要简短
XmlNodeList contactList = doc.GetElementsByTagName("Contact");
using (var writer = System.IO.File.CreateText(fileName))
{
writer.WriteLine($"<Root>{string.Join("",contactList.Cast<XmlNode>().Select(x=>x.OuterXml))}</Root>");
}