![](/img/trans.png)
[英]Read the data from XML file into flat files(txt) and with formated data
[英]converting flat txt file to nested xml
我需要將帶有一些轉換列元素的文本文件轉換為嵌套的 xml 文件 -
例如
txt 平面文件 - Name,Age,Street name,street number,city name
換算表——
平面文件 - Name,Age,Street name,street number,city name
換算表——
Name-FullName
Age-Age
Street Name-AddressDetail-StreetName
Street Number-AddressDetail-StreetNumber
City Name-AddressDetail-CityName
xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<Envelop>
<FullName>Steve Mate</FullName>
<Age>22</Age>
<AddressDetail>
<StreetName>Rockford</StreetName>
<StreetNumber>111</StreetNumber>
<CityName>Alimena</CityName>
</AddressDetail>
</Envelop>
實施它的最佳方法是什么? 它可以與MVC一起使用嗎? 使用XElement
嗎?
我做過很多次類似的事情。
這沒有什么特別的技巧。 您需要解析輸入文件以獲取所需的元素,然后您需要使用數據創建 XML 文件。
我不知道任何現有的方法來轉換您的特定文本文件格式。
以下代碼應該適合您
var lines = text.Split(new[] {"\r", "\n", "\r\n"}, 0);
var xDoc = new XDocument(new XElement("Envelop"));
foreach (var line in lines)
{
var values = line.Split('-');
var parentNode = xDoc.Root;
foreach (var value in values.Reverse().Skip(1))
{
var name = value.Replace(" ", "");
var node = parentNode.Element(name);
if (node == null)
{
node = new XElement(name);
parentNode.Add(node);
}
parentNode = node;
}
parentNode.Value = values.Last();
}
-
Output:
<Envelop>
<FullName>FullName</FullName>
<Age>Age</Age>
<AddressDetail>
<StreetName>StreetName</StreetName>
<StreetNumber>StreetNumber</StreetNumber>
<CityName>CityName</CityName>
</AddressDetail>
</Envelop>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.