)xmlファイルには複数のチャネルがあり、それらのすべてのチャネルカテゴリにチャネルカテゴリを追加します。どのチャンネルに依存するか。私はこれに非常に新しいですので、これが明らかな誤りであれば私には容赦してください。c#xml要素を追加します(属性が
例:私は、次の試してみました
<channel-category>Entertainment</channel-category>
または
<channel-category>News</channel-category>
:
string path;
string xmlfile = "/channels.xml";
path = Environment.CurrentDirectory + xmlfile;
if (exists("channelname1"))
{
XmlDocument doc = new XmlDocument();
doc.Load(path);
XmlNode root = doc.DocumentElement;
XmlNode node = root.SelectSingleNode("list/channel[@id='channelname1'");
XmlNode category = doc.CreateElement("channel-category");
category.InnerText = "channelcataegorygoeshere";
node.AppendChild(category);
doc.DocumentElement.AppendChild(node);
}
else
{
Console.WriteLine("not found");
}
Console.ReadKey();
}
static bool exists(string channelname)
{
string path;
string xmlfile = "/channels.xml";
path = Environment.CurrentDirectory + xmlfile;
XDocument xmlDoc = XDocument.Load(path);
bool doesexists = (from data in xmlDoc.Element("list").Elements("channel")
where (string)data.Attribute("id") == channelname
select data).Any();
return doesexists;
}
が、それは私に次のエラーを与えていると私はそれを把握することはできません。私は間違って何をしていますか?
このラインからAn unhandled exception of type 'System.Xml.XPath.XPathException' occurred in System.Xml.dll
Additional information: 'list/channel[@id='channelname1'' has an invalid token.
XmlNode node = root.SelectSingleNode("list/channel[@id='channelname1'");
私のXMLは、XMLライブラリがあなたの要素と投げるのパスを取得しない理由thatsのリストの代わりにテレビを使用しているのはなぜこの
<?xml version="1.0" encoding="UTF-8"?>
<list info="list">
<channel id="channelname1">
<display-name lang="en">channelname1</display-name>
<icon src="http://locationtologo.com/" />
<url>http://someurl.com</url>
</channel>
<channel id="channelname2">
<display-name lang="en">channelname2</display-name>
<icon src="http://locationtologo.com/" />
<url>http://someurl.com</url>
</channel>
<channel id="channelname3">
<display-name lang="en">channelname3</display-name>
<icon src="http://locationtologo.com/" />
<url>http://someurl.com</url>
</channel>
<channel id="channelname4">
<display-name lang="en">channelname4</display-name>
<icon src="http://locationtologo.com/" />
<url>http://someurl.com</url>
</channel>
</list>
'xmlDoc.Element( "TV")のデータから、' - あなたのXMLは 'tv'要素を持っていません。 –
申し訳ありませんが、間違ったエラーを貼り付けました。 '型 'System.Xml.XPath.XPathException' の未処理の例外は、System.Xml.dllに 発生しました追加情報: 'リスト/チャンネルを[ID @ =' channelname1は '' から token.'無効ありこの行は 'XmlNode node = root.SelectSingleNode(" list/channel [@ id = 'channelname1' "];' 私の投稿を編集しました。 –