分享

Windows8WinRT XML数据API

 牛人的尾巴 2015-12-01

Windows8WinRT XML数据API

(2013-01-15 13:24:19)
标签:

杂谈

//添加CDATA节点数据至XML文件
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
    <channel>
        <title>Pay Less For More</title>
        <link>http://paylessformore</link>
        <description>Pay Less For More Homepage</description>
        <content>
        </content>
    </channel>
</rss>

        public async Task<XmlDocument> LoadXmlFile(String folder, String file)
        {
            StorageFolder storageFolder = await Package.Current.InstalledLocation.GetFolderAsync(folder);
            StorageFile storageFile = await storageFolder.GetFileAsync(file);

            XmlLoadSettings loadSettings = new XmlLoadSettings();
            loadSettings.ProhibitDtd = false;
            loadSettings.ResolveExternals = false;

            return await XmlDocument.LoadFromFileAsync(storageFile, loadSettings);
        }

                try
                {
                    var xmlDoc = new XmlDocument();
                    xmlDoc.LoadXml(xml);

                    var element = xmlDoc.getElementsByTagName_r("content").Item(0);

                    String rss = scenario1RssInput.Text;
                    var cdata = xmlDoc.CreateCDataSection(rss);// create a rss CDataSection and insert into DOM tree
                    element.A(cdata);
                }
                catch (Exception exp)
                {
   Debug.WriteLine(exp.Message);
                }



//Mark HotProducts
<?xml version="1.0" encoding="utf-8"?>
<products>
    <product id="DVD-001" title="Toy story 3" hot="0">
        <price>12.99</price>
        <InStore>35</InStore>
        <Sell10day>33</Sell10day>
    </product>
    <product id="DVD-002" title="The Blind Side" hot="0">
        <price>15.99</price>
        <InStore>12</InStore>
        <Sell10day>48</Sell10day>
    </product>
</products>

            try
            {
                var doc = new XmlDocument();
                doc.LoadXml(xml);

                // Mark 'hot' attribute to '1' if 'Sell10day' is greater than 'InStore'
                var xpath = "/products/product[Sell10day>InStore]/@hot";
                var hotAttributes = doc.SelectNodes(xpath);
                for (uint index = 0; index < hotAttributes.Length; index++)
                {
                    hotAttributes.Item(index).NodeValue = "1";
                }
            }
            catch (Exception exp)
            {
   Debug.WriteLine(exp.Message);
            }


//XPath Query
<?xml version="1.0" encoding="utf-8"?>
<employees>
    <employee>
        <name>Micheal Jackson</name>
        <department>Customer Support</department>
        <startyear>2004</startyear>
    </employee>
    <employee>
        <name>Anni Wang</name>
        <department>Business Partner</department>
        <startyear>2009</startyear>
    </employee>
    <employee>
        <name>Sail Young</name>
        <department>Consulting</department>
        <startyear>2000</startyear>
    </employee>
</employees>


            var doc = new XmlDocument();
            doc.LoadXml(xml);

            var thisYear = 2012;
            var previousOneYear = thisYear - 1;
            var previousFiveYear = thisYear - 5;
            var previousTenYear = thisYear - 10;

            //方式一
            var xpath = new String[3];
            // select >= 1 year and < 5 years
            xpath[0] = "descendant::employee[startyear <= " + previousOneYear + " and startyear > " + previousFiveYear + "]";
            // select >= 5 years and < 10 years
            xpath[1] = "descendant::employee[startyear <= " + previousFiveYear + " and startyear > " + previousTenYear + "]";
            // select >= 10 years
            xpath[2] = "descendant::employee[startyear <= " + previousTenYear + "]";

            var Gifts = new String[3] { "Gift Card", "XBOX", "Windows Phone" };

            var output = new StringBuilder();
            for (uint i = 0; i < 3; i++)
            {
                var employees = doc.SelectNodes(xpath[i]);
                for (uint index = 0; index < employees.Length; index++)
                {
                    var employeeName = employees.Item(index).SelectSingleNode("descendant::name");
                    var department = employees.Item(index).SelectSingleNode("descendant::department");

                    output.AppendFormat("[{0}]/[{1}]/[{2}]\n", employeeName.FirstChild.NodeValue, department.FirstChild.NodeValue, Gifts[i]);
                }
            }

            //方式二
            //var xpath = new String[3];
            //// select >= 1 year and < 5 years
            //xpath[0] = "/employees/employee[startyear <= " + previousOneYear + " and startyear > " + previousFiveYear + "]";
            //// select >= 5 years and < 10 years
            //xpath[1] = "/employees/employee[startyear <= " + previousFiveYear + " and startyear > " + previousTenYear + "]";
            //// select >= 10 years
            //xpath[2] = "/employees/employee[startyear <= " + previousTenYear + "]";

            //var Gifts = new String[3] { "Gift Card", "XBOX", "Windows Phone" };

            //var output = new StringBuilder();
            //for (uint i = 0; i < 3; i++)
            //{
            //    var employees = doc.SelectNodes(xpath[i]);
            //    for (uint index = 0; index < employees.Length; index++)
            //    {
            //        var employeeName = employees.Item(index).SelectSingleNode("name");
            //        var department = employees.Item(index).SelectSingleNode("department");

            //        output.AppendFormat("[{0}]/[{1}]/[{2}]\n", employeeName.FirstChild.NodeValue, department.FirstChild.NodeValue, Gifts[i]);
            //    }
            //}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多