//添加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]);
//
}
//}