解析和生成xml从模板文件(c#)
本文关键字:文件 xml | 更新日期: 2023-09-27 18:15:41
我有一个类似于以下内容的XML模板
<a:Demographics>
<b:Id>
<c:IdValue></c:IdValue>
<c:IdScheme></c:IdScheme>
<c:IdType></c:IdType>
</b:Id>
</a:Demographics>
使用Visual Studio和c#,我如何解析xml,然后根据我的当前记录,将我自己的数据添加到c:IdValue
, c:IdScheme
和c:IdType
中,因为这些是必需的xml字段。它们在模板中留白,以便我的程序将填充它们,然后我需要将其保存为新的xml文件,但一旦添加了值,这应该是直接的。
我愿意使用任何可以完成工作的库!
一个有效的XML必须在某个地方有名称空间前缀声明,我假设您的XML有它。然后您可以使用XDocument
:
XDocument doc = XDocument.Load("path_to_xml_file.xml");
XNamespace a = "http://uri.for.a.prefix.com";
XNamespace b = "http://uri.for.b.prefix.com";
XNamespace c = "http://uri.for.c.prefix.com";
XElement id = doc.Descendants(a+"Demographics")
.First()
.Element(b+"Id");
id.Element(c+"IdValue").Value = "new value here";
id.Element(c+"IdScheme").Value = "new scheme here";
id.Element(c+"IdType").Value = "new type here";
doc.Save("path_to_new_xml_file.xml");
你可以使用System.Xml.Linq
加载模板
XDocument Template = XDocument.Load("Template.xml");
修改它void AddData(string elemName, string value)
{
XElement element = Template.Root.Descendants("elemName").First();
element.Value = value;
}
和Save it
Template.Save("newXml.xml");