ファイルに画像を追加する機能を追加したいと考えています。画像を文字列に変換して画像に戻す機能があり、正常に動作します。
XML ファイル データ
<MovieData>
<Movie>
<Name>Death Race</Name>
<Type>Action</Type>
<Type>Adventure</Type>
<Rating>R</Rating>
<Disk>Blu-Ray</Disk>
<Owner>N/A</Owner>
<Location>N/A</Location>
<SeriesType>Movie Series</SeriesType>
<LengthHr>1</LengthHr>
<LengthMin>51</LengthMin>
<Time>10 : 44 : 23 PM</Time>
<Date>10/13/2013</Date>
</Movie>
<Movie>
<Name>Death Race 2</Name>
<Type>Action</Type>
<Type>Adventure</Type>
<Rating>R</Rating>
<Disk>Combo</Disk>
<Owner>N/A</Owner>
<Location>N/A</Location>
<SeriesType>Movie Series</SeriesType>
<LengthHr>1</LengthHr>
<LengthMin>41</LengthMin>
<Time>9 : 52 : 34 PM</Time>
<Date>10/9/2013</Date>
</Movie>
</MovieData>
私はそれをどのように見せたいですか:
<MovieData>
<Movie>
<Name>Death Race</Name>
<Type>Action</Type>
<Type>Adventure</Type>
<Rating>R</Rating>
<Disk>Blu-Ray</Disk>
<Owner>N/A</Owner>
<Location>N/A</Location>
<SeriesType>Movie Series</SeriesType>
<LengthHr>1</LengthHr>
<LengthMin>51</LengthMin>
<Image>string</Image>//Needs to be here.If it is after date that is fine too.
<Time>10 : 44 : 23 PM</Time>
<Date>10/13/2013</Date>
</Movie>
<Movie>
<Name>Death Race 2</Name>
<Type>Action</Type>
<Type>Adventure</Type>
<Rating>R</Rating>
<Disk>Combo</Disk>
<Owner>N/A</Owner>
<Location>N/A</Location>
<SeriesType>Movie Series</SeriesType>
<LengthHr>1</LengthHr>
<LengthMin>41</LengthMin>
<Image>string</Image>
<Time>9 : 52 : 34 PM</Time>
<Date>10/9/2013</Date>
</Movie>
</MovieData>
コード:
try
{
string name = movieSaveImageNameTB.Text;
string date = movieSaveImageDateTB.Text;
string time = movieSaveImageTimeTB.Text;
string hr = movieSaveImageHrTB.Text;
string min = movieSaveImageMinTB.Text;
XmlDocument doc = new XmlDocument();
doc.Load(movieListXML);
XmlNode node = doc.SelectSingleNode("/MovieData");
foreach (XmlNode movie in node.SelectNodes("Movie"))
{
if (movie != null)
{
if ((movie["Name"].InnerText == name) && (movie["Date"].InnerText == date) && (movie["Time"].InnerText == time) &&
(movie["LengthHr"].InnerText == hr) && (movie["LengthMin"].InnerText == min))
{
// This works but doesn't give the results i want.
XmlNode n = doc.CreateNode(movie["Name"].NodeType, "Image", movie.NamespaceURI);
movie.InsertAfter(n, movie.LastChild);
doc.Save(movieListXML);
}
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
使用している正しい XML ファイル形式で更新しました。ごめんなさい
これを試しました。
XmlNodeList nodeList = movie.ChildNodes;
foreach (XmlNode nl in nodeList)
{
if (nl.Name == "LengthMin")
{
XmlElement xNewChild = doc.CreateElement("Image");
xNewChild.InnerText = "string";
doc.DocumentElement.InsertAfter(xNewChild, nl);
}
}
それはまだそのノードの子ではないというエラーを示しています...