データをテキストボックスに入力してボタンをクリックしてそのデータをXMLドキュメントに入力することにより、単純なXMLドキュメントを作成するツールをWPFから作成しようとしています。私は、親ステップを追加することができましたC#、特定の属性を持つノードに子ノードを追加しようとしています
<root>
<step id="1">
<P>some instructions</p>
<step id="1.1">
<p>some additional instructions</p>
</step>
</step>
<step id="2">
<p>second set of instructions</p>
<step id="2.1">
<p>additional instructions for step 2</p>
</step>
</step>
しかし、私のサブステップのすべてが、最初の親に該当:ルート要素以外に、私はこのような子サブステップ要素とステップの要素を持っていますステップ:
<root>
<step id="1">
<step id="1.1">
<step id="2.1">
<step id="3.1">
<step id="2">
<step id="3">
サブステップを適切な親ステップに挿入しようとしています。しかし、私はエラーを受け取ります: "XAttributeには 'add'の定義がなく、拡張メソッド 'add'は最初の引数型 'XAttribute'を受け入れることができませんでした。
私は広範に調査しており、解決策を思い付くことができません。うまくいけば、これは意味があり、誰かが私に手を差し伸べることができます。前もって感謝します。ここに私のコードは次のとおりです。
using System.Windows;
using System.Xml.Linq;
using System.Xml.XPath;
namespace XMLwpfTest1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
XDocument doc = new XDocument(
new XElement("Content",
new XElement("Title", "DM Title"))
);
string par = "par-";
int counter = 1;
int counter2 = 1;
string stepNumber = "";
public MainWindow()
{
InitializeComponent();
}
private void create_Click(object sender, RoutedEventArgs e)
{
doc.Element("Content").Add(
new XElement("proceduralStep",
new XAttribute("id", par + counter.ToString("D4")),
new XElement("para",
dataBox.Text)));
stepNumber = par + counter.ToString("D4");
counter += 1;
dataBox.Clear();
counter2 = 1;
}
private void createSubStep_Click(object sender, RoutedEventArgs e)
{
var addStep = doc.XPathSelectElement("Content/proceduralStep").Attribute(stepNumber);
addStep.add(
new XElement("proceduralStep",
new XAttribute("id", stepNumber + "-" + counter2.ToString("D4")),
new XElement("para",
subDataBox.Text)));
counter2 += 1;
subDataBox.Clear();
}
private void save_Click(object sender, RoutedEventArgs e)
{
doc.Save(fileName.Text + ".xml");
savedLabel.Visibility = Visibility.Visible;
}
}
}
これは完全なXMLファイルですか? Content/proceduralStepとコンテンツはどこから来たのですか?私はxmlでそれらを見ることはできません – Sybren
私が質問に入れたXMLは、私が探していた構造だけです。それらは実際のタグ名ではありません。私は実際のタグ名を使用しているはずです。混乱させて申し訳ありません。とは、作成される要素です。 –
swm462