我在尝试使用xml文件时遇到问题,我在这里和其他地方阅读了一些帖子,但我无法解决工作中的问题,我在C#中有一些问题,关于非法路径,获取xml信息
问题1:
System.ArgumentException:路径中有非法字符
string path = "D:\\temp\\"+bbb+".log";
我想用参数设置路径名:
string bbb = t1.Attribute("name").ToString();
string path = "D:\\temp\\"+bbb+".log";
示例file1.log file2.log file3.log
....
问题2:
我使用linq从xml获取一些信息
我想得到"路径"信息,但我只得到path ="D:\example1.c"
我想获得并仅显示D:\example1.c
代码:
var path = from q in doc.Element("content").Element("aaainfo").Elements("setting")
select q;
foreach (var onlypath in path)
{
string getpath = onlypath.Attribute("path").ToString();
Console.WriteLine(getpath + "");
}
的xml:
<aaainfo>
<setting name="file1" path ="D:\example1.c" serializeAs="String">
<add value="aaa" name="file11" />
<add value="bbb" name="file12" />
<value />
</setting>
</aaainfo>
问题3:
我想得到关于名称和值的数字,我有记录的日志文件。 现在当我使用&#34; file22.c&#34;打开C#文件,但我只得到name = 2,不能获得值nauber。 (我认为它记录为file1信息,它可能有关于xml的问题吗?)
正确的数字是name = 3,name = 2 我无法获得有关&#34; file2&#34;
的任何信息代码:
var path = from q in doc.Element("content").Element("aaainfo").Elements("setting")
select q;
foreach (var onlypath in path)
{
string getpath = onlypath.Attribute("path").ToString();
Console.WriteLine(getpath + "");
m ++;
}
XML
<aaainfo>
<setting name="file2" path ="D:\example2.c" serializeAs="String">
<add value="aaa2" name1="file21.c" />
<add value="bbb2" name1="file22.c" />
<add value="ccc2" name1="file23.c" />
<value />
</setting>
</aaainfo>
答案 0 :(得分:0)
您需要获取XAttribute.ToString()
属性,或者只需将XAttribute.Value
转换为XAttribute
,而不是在任何地方执行string
:
string bbb = (string)t1.Attribute("name");
.....
string getpath = (string)onlypath.Attribute("path")