Umarım bana biraz yardımcı olabilirsiniz. Bir XML dosyasına yazmaya çalışıyorum, ama XML dosyasına yazdığı yöntemi yazmaya çalışıyorum.XDocument kullanarak XML'ye yazmak, ancak nerede yazılacağını bilmek
<software>
<software_entry
name="Adobe Acrobat X Standard"
path="Applications\Acrobat\Acrobat X Standard\AcroStan.msi"
type="msi"
switches="/qn ALLUSERS=1"
/>
<software_entry
name="Adobe Acrobat X Professional"
path="Applications\Acrobat\Acrobat X Pro\AcroPro.msi"
type="msi"
switches="/qn ALLUSERS=1"
/>
</software>
başvurunun bu bölümünün amacı bir GUI kullanarak bu yazmaktır: Bu elle (vb ++ Notepad kullanarak) yazılı XML dosyasıdır.
Uygulamada, kullanıcı XML dosyasının adını seçer. Daha sonra kullanıcı, saklamak istedikleri yere sorulduğunda, geçici klasöre kaydedilir. Dosyanın istenen adını girip Oluştur'u tıkladığınızda, "createAndLoadXML" adlı yöntem çalıştırılır. Adından da anlaşılacağı gibi, bir XML dosyası oluşturur ve yükler (form üzerindeki bir liste görünümü kontrolünü doldurmak için). Kod aşağıda görülebilir. kullanıcı girişi için 4 metin kutuları vardır ayrıca bu forma aşağı Şimdi
private void createAndLoadXML()
{
// Method to create XML file based on name entered by user
string tempPath = Path.GetTempPath();
string configFileName = fileNameTextBox.Text;
string configPath = tempPath + configFileName + ".xml";
// Create XDocument
XDocument document = new XDocument(
new XDeclaration("1.0", "utf8", "yes"),
new XComment("This XML file defines the software selections for use with the Software Installer"),
new XComment("XML file generated by Software Installer"),
new XElement("software",
new XElement("software_entry",
new XAttribute("name", ""),
new XAttribute("path", ""),
new XAttribute("type", ""),
new XAttribute("switches", ""))
)
);
document.Save(configPath);
configCreateLabel.Visible = true;
document = XDocument.Load(configPath);
}
, yaratılan nitelikler (isim, yol, tipi ve anahtarlar) fikri bu metin kutularına yazacak kullanıcı ilişkin her bir tıklayın 'Ekle' düğmesine basınca program bu 4 alanı bu XML dosyasına öznitelik olarak yazacaktır. Şimdiye kadar, bu kod var, ki bu da çok eksik ve LINQ'ı XML'e bile kullanmıyor.
private void writeToXML()
{
// Method to write lines to XML file based on user input
// Sets string variables
string fileName = softwareNameTextBox.Text;
string filePath = filePathTextBox.Text;
string fileType = installerType.Text.ToString();
string installSwitches = installSwitchesTextBox.Text;
using (XmlWriter xw = XmlWriter.Load(configPath)) //This line is wrong, I know
{
xw.WriteStartElement("software");
xw.WriteElementString("name", fileName);
xw.WriteElementString("path", filePath);
xw.WriteElementString("type", fileType);
xw.WriteElementString("switches", installSwitches);
xw.WriteEndElement();
}
}
Temelde, herkes XML kullanıcı metin kutusu denetimleri girmiştir verileri yazar yukarıdaki yöntemle lütfen bana yardımcı olabilir? Önceden oluşturulan XML belgesini (createAndLoadXML yöntemimden) nasıl yükleyeceğimi ve LINQ to XML kullanarak kök öğesi (yazılım) içinde nasıl yazılacağımı bilmiyorum.
Yapabileceğiniz en iyi şey, sizin formdan dolduran xattributes ile yeni XElement oluşturmak, bir XDocumnt olarak bütün XML yüklemek bellekte XDocument ekleyebilir daha sonra mevcut xml dosyanın üzerine kaydetmek olacaktır. – jzm
Öneriniz için teşekkürler. – CSF90