0

我使用此代码从 XML 文件中检索特定值。现在我想检索 XML 文件中存在的所有数据。有人可以帮我找出解决方案吗?

StorageFile xmlFile = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync("Content1.xml");
XmlDocument xmlDoc;
xmlDoc = await XmlDocument.LoadFromFileAsync(xmlFile);
System.Xml.Linq.XDocument duc = System.Xml.Linq.XDocument.Parse(xmlDoc.GetXml());

var query=
    from Date in duc.Root.Elements("Serial")
    where Date.Attribute("No").Value=="1"
    from Current in Date.Elements("Current")
    select new {
        NarratedBy=Current.Attribute("NarratedBy").Value,
        value=Current.Attribute("Date").Value
    };

foreach(var Date in query) {
    System.Diagnostics.Debug.WriteLine("{0}\t{1}", Date.NarratedBy, Date.value);
}
4

3 回答 3

1

您已经将整个 XML 文档加载到duc变量中。

该行负责:

System.Xml.Linq.XDocument duc = System.Xml.Linq.XDocument.Parse(xmlDoc.GetXml());
于 2013-04-03T06:56:56.127 回答
0

您已经拥有所有数据:

xmlDoc = await XmlDocument.LoadFromFileAsync(xmlFile); // data loadded
System.Xml.Linq.XDocument duc = System.Xml.Linq.XDocument.Parse(xmlDoc.GetXml()); // data parsed

====================

这是一个示例代码,您可以如何做到这一点。它功能齐全(使用本地字符串 xml 而不是您的文件),因此您可以运行它。我只添加了三个属性,但您可以添加任意数量的属性。

class Program {
static void Main(string[] args) {
// this is a sample string. Use your file instead
string s = "<catalog>" +
"<book id=\"bk101\" author=\"Gambardella, Matthew\" title=\"XML Developer's Guide\" genre=\"Computer\"/>" +
"<book id=\"bk102\" author=\"Ralls, Kim\" title=\"Midnight Rain\" genre=\"Fantasy\"/>" +
"</catalog>";

XmlDocument xdoc = new XmlDocument();
            xdoc.LoadXml(s); // here we load data
// here we get attributes. I have three, you will add three more. Also you may want to use string array instead of variables
            foreach (XmlNode task in xdoc.DocumentElement.ChildNodes)
{
                string author = task.Attributes["author"].InnerText;
                string title = task.Attributes["title"].InnerText;
                string genre = task.Attributes["genre"].InnerText;
            }
        }
    }
于 2013-04-03T07:38:21.000 回答
0

然后您可以将您的XDocument详细信息检索到例如string带有 XDocument 扩展名的变量中ToString()

于 2013-04-03T07:27:25.450 回答