从C#读取XML节点时';它是XAML中的一个资源
我在以下方面遇到了一些问题。我是初学者,这可能就是原因 我有一个显示一些图片的列表框,它从XML文件中获取这些图片的路径。此XML文件在XAML中定义为资源。如果选择了一张图片,用户按enter键,我想启动一个带有一些参数的外部应用程序,包括在该XML文件的另一个节点中找到的路径(下面示例中的appath) XML布局:从C#读取XML节点时';它是XAML中的一个资源,c#,wpf,xaml,C#,Wpf,Xaml,我在以下方面遇到了一些问题。我是初学者,这可能就是原因 我有一个显示一些图片的列表框,它从XML文件中获取这些图片的路径。此XML文件在XAML中定义为资源。如果选择了一张图片,用户按enter键,我想启动一个带有一些参数的外部应用程序,包括在该XML文件的另一个节点中找到的路径(下面示例中的appath) XML布局: <picture> <path></path> <appath></appath> </pictu
<picture>
<path></path>
<appath></appath>
</picture>
我似乎找不到从C#访问节点的方法。
非常感谢任何指点
提前感谢,,
J.如果图片节点中没有任何属性(某种id),则必须首先匹配列表框中应该已经存在的路径,然后返回appath
static string GetAppath(string xmlString, string picPath)
{
string appath = String.Empty;
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(xmlString);
XmlNodeList xList = xDoc.SelectNodes("/picture");
foreach (XmlNode xNode in xList)
{
if (xNode["path"].InnerText == picPath)
{
appath = xNode["appath"].InnerText;
break;
}
}
return appath;
}
假设您的xml文件看起来像:
<?xml version="1.0" encoding="ISO-8859-1"?>
<pictures>
<picture>
<path></path>
<appath></appath>
</picture>
</pictures>
使用这些扩展名:(只需将类/文件复制到项目的根目录中)
或搜索特定图片:
Picture pic = pictures.FirstOrDefault(p => p.Path = "some path");
if(pic != null)
{
// do something with pic
}
public class PicturesResource
{
XElement self;
public PicturesResource()
{ self = XElement.Parse(Properties.Resources.Pictures); }
public IEnumerable<Picture> Pictures
{ get { return self.GetEnumerable("picture", x => new Picture(x)); } }
}
public class Picture
{
XElement self;
public Pictures(XElement self) { this.self = self; }
public string Path { get { return self.Get("path", string.Empty); } }
public string AppPath { get { return self.Get("apppath", string.Empty); } }
}
PicturesResource pictures = new PicturesResource();
foreach(Picture pic in pictures.Pictures)
{
string path = pic.Path;
string apppath = pic.AppPath;
}
Picture pic = pictures.FirstOrDefault(p => p.Path = "some path");
if(pic != null)
{
// do something with pic
}