Я создаю XML файл из запроса linq. Элементы xml генерируются, однако я хочу добавить префикс в каждый элемент, чтобы он привел к следующей вещи:
XDocument xDoc =null;
xDoc = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XElement("EmpLists",
new XElement("Employee",
new XElement("EmpId", '1'),
new XElement("Name", "Sam"),
new XElement("Sex", "Male"))));
Что делать, чтобы элементы печатались с их префиксом "CP:", как показано ниже?
<?xml version="1.0" encoding="utf-8" ?>
<CP:EmpLists>
<CP:Employee>
<CP:EmpId>1</CP:EmpId>
<CP:Name>Sam</CP:Name>
<CP:Sex>Male</CP:Sex>
<CP:Address>
<CP:Street>7A Cox Street</CP:Street>
<CP:City>Acampo</CP:City>
<CP:State>CA</CP:State>
<CP:Zip>95220</CP:Zip>
</CP:Address>
</CP:Employee>
<CP:Employee>
<CP:EmpId>2</CP:EmpId>
<CP:Name>Lucy</CP:Name>
<CP:Sex>Female</CP:Sex>
<CP:Address>
<CP:Street>Jess Bay</CP:Street>
<CP:City>Alta</CP:City>
<CP:State>CA</CP:State>
<CP:Zip>95701</CP:Zip>
</CP:Address>
</CP:Employee>
</CP:EmpLists>
Это работает для меня:
var url = "YOUR_NS_URL";
var ns = XNamespace.Get(url);
var xDoc =
new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XElement(ns + "EmpLists",
new XAttribute(XNamespace.Xmlns + "CP", url),
new XElement(ns + "Employee",
new XElement(ns + "EmpId", '1'),
new XElement(ns + "Name", "Sam"),
new XElement(ns + "Sex", "Male"))));
Я получаю этот XML:
<CP:EmpLists xmlns:CP="YOUR_NS_URL">
<CP:Employee>
<CP:EmpId>1</CP:EmpId>
<CP:Name>Sam</CP:Name>
<CP:Sex>Male</CP:Sex>
</CP:Employee>
</CP:EmpLists>
Вы захотите использовать пространство имен, см. Пример аналогичного пространства имен. Вам нужно будет создать экземпляр экземпляра XNamespace
и использовать его как XAttribute
, используя new XAttribute(XNamespace.Xmlns + "CP", ns)
.