0
我已經導出了一個SQLite數據庫來構造XML,然後使用c#.net中的以下代碼將其轉換爲平面XML。將結構XML轉換爲平面XML,但某些列除外
XDocument Doc = XDocument.Load("myXML.xml");
XElement[] elements = Doc.DescendantNodes()
.Where(n => n.NodeType == XmlNodeType.Text).Select(n => n.Parent).ToArray();
foreach (XElement element in elements)
{
element.Parent.SetAttributeValue(element.Name, element.Value);
element.Remove();
}
結構XML像下面
<apple>
<id>1</id>
<name>Apple 1</name>
<orange>
<id>5</id>
<orangeNmae>C1</orangeNmae>
<function>good for health</function>
<part>7</part>
<banana>
<id>9</id>
<bananaName>48</bananaName>
<effect>23</effect>
<notes>be careful</notes>
</banana>
<banana>
<id>10</id>
<bananaName>49</bananaName>
<effect>24</effect>
<notes>be careful!</notes>
</banana>
</orange>
</apple>
產生的扁平XML是像下面
<apple id="1" name="Apple 1">
<orange id="5" orangeNmae="C1" function="good for health" part="7">
<banana id="9" bananaName="48" effect="23" notes="be careful" />
<banana id="10" bananaName="49" effect="24" notes="be careful" />
</orange>
</apple>
現在我需要保持像結構化的XML一些列像下面
<apple id="1" name="Apple 1">
<orange id="5" orangeNmae="C1" function="good for health" part="7">
<banana id="9" bananaName="48" />
<notes>be careful</notes>
<effect>23</effect>
<banana id="10" bananaName="49" />
<notes>be careful</notes>
<effect>23</effect>
</orange>
</apple>
任何人都可以給我任何提示如何做到這一點? 在將結構化XML轉換爲平面XML時,我應該改變方法嗎?
豈不XSLT轉換是一個更適合這個? – rene
你能給我舉個例子嗎? – rzmuc
有什麼辦法可以跳過一些從轉換到平面xml的列嗎? – rzmuc