XDocument からの出力を希望どおりに .CSV ファイルに変換するのに少し苦労しています。誰かが私を助けることができるかどうか疑問に思っていましたか?
まず、XML は次のとおりです。
<Main>
<Node1>
<Node1a>1</Node1a>
<Node1b>2</Node1b>
</Node1>
<Node2>
<Node2a>Three</Node2a>
<Node2b>Four</Node2b>
</Node2>
</Main>
この XML ドキュメントを文字列 (つまり、以下では sString と呼ばれる) に変換し、それを VB.NET 関数に渡すことができます。私は現在持っています...
Dim doc As XDocument = XDocument.Parse(sString)
Dim myOutput As New StringBuilder(1000)
For Each node As XElement In doc.Descendants("Main")
For Each innerNode As XElement In node.Elements()
myOutput.AppendFormat("{0},", innerNode.Attribute("Node1a").Value)
myOutput.AppendFormat("{0},", "!")
myOutput.AppendFormat("{0},", innerNode.Attribute("Node1b").Value)
myOutput.AppendFormat("{0},", "!")
myOutput.AppendFormat("{0},", innerNode.Attribute("Node2a").Value)
myOutput.AppendFormat("{0},", "!")
myOutput.AppendFormat("{0},", innerNode.Attribute("Node2b").Value)
Next
myOutput.AppendLine()
Next
Dim finalCSVstring as string
finalCSVstring = myOutput.ToString()
これは「ちょっと」機能します...しかし、ノードの内側のループでめちゃくちゃになり、それらの値を書き出すと思います。
私が望むのは、最終的な出力が次のようになることです。
1|2|Three|Four
「|」さまざまな値を分離します。