这是我在文件中的XML数据
<item id="ncx" href="toc.ncx" media-type="application/x-dtbncx+xml" />
<item id="W000Title" href="000Title.html" media-type="application/xhtml+xml" />
<item id="W01MB154" href="01MB154.html" media-type="application/xhtml+xml" />
<item id="WTOC" href="TOC.html" media-type="application/xhtml+xml" />
我想在Store应用程序中使用C#获取元素值。 我正在获得价值观,但这不是正确的方式。我无法进入下一步。
string fileContents3 = await FileIO.ReadTextAsync(file);
xmlDoc1.LoadXml(fileContents3);
XmlNodeList item = xmlDoc1.GetElementsByTagName("item");
for (uint k = 0; k < item.Length; k++)
{
XmlElement ele1 = (XmlElement)item.Item(k);
var attri1 = ele1.Attributes;
var attrilist1 = attri1.ToArray();
for (int l = 0; l < attrilist1.Length; l++)
{
if (attrilist1[l].NodeName == "id")
{
ids2 = attrilist1[0].NodeValue.ToString();
ids3 = attrilist1[1].NodeValue.ToString();
}
}
}
而不是这种方式我想知道获取属性“id”的元素值的任何方式
答案 0 :(得分:0)
如果要获取XmlNode
对象上的属性值,可以使用此函数:
public static string GetAttributeValue(XmlNode node, string attributeName)
{
XmlAttribute attr = node.Attributes[attributeName];
return (attr == null) ? null : attr.Value;
}
答案 1 :(得分:0)
如果您需要使用XPath,可以按如下方式使用
XmlDocument document = new XmlDocument();
document.Load(@"c:\users\saravanan\documents\visual studio 2010\Projects\test\test\XMLFile1.xml");
XmlNodeList itemNodes = document.SelectNodes("//item");
foreach (XmlElement node in itemNodes)
{
if (node.Attributes.Count > 0)
{
if (node.HasAttribute("id"))
{
Console.Write(node.Attributes["id"]);
}
}
}
var itemNodeswithAttribute = document.SelectNodes("//item[href=toc.ncx]");
itemNodeswithAttribute = document.SelectNodes("//item[@href='toc.ncx']");
答案 2 :(得分:0)
string fileContents3 = await FileIO.ReadTextAsync(file);
xmlDoc1.LoadXml(fileContents3);
XmlNodeList item = xmlDoc1.GetElementsByTagName("item");
for (uint k = 0; k < item.Length; k++)
{
XmlElement ele1 = (XmlElement)item.Item(k);
string foo = ele1.Attributes[0].NodeValue.ToString();
}
我简化了你的代码。希望这会帮助你。 我假设id属性始终位于第一个位置(索引0)。