我的xml文件如下所示。
<mappings>
<mapping>
<a>a1value</a>
<b>
<c>
<d>d1value</d>
<e>e1value</e>
</c>
</b>
</mapping>
<mapping>
<a>a2value</a>
<b>
<c>
<d>d2value</d>
<e>e2value</e>
</c>
</b>
</mapping>
</mappings>
C#代码读取a,d标签的值。
XmlDocument xmlDocNew = new XmlDocument();
XmlElement CATLOG = xmlDocNew.CreateElement("mappings");
XmlNode xmlNodeTab = xmltest.DocumentElement;
XmlNodeList xmlNodeListCD = xmlNodeTab.SelectNodes("//mapping");
foreach (XmlNode xmlNodeCD in xmlNodeListCD)
{
string innerText = xmlNodeCD["a"].InnerText;
string xmlNodeapp = xmlNodeCD["//b/c/d"].InnerText;
}
使用以上代码,我可以遍历所有“ a”标签元素。但是我无法读取“ d”标签值。如何读取“ d”标签的值?
当我遍历foreach循环中的每个元素时,我想获取“ a”标记的值及其对应的“ d”标记值。
此代码查看每个映射,并在其下查找标签a
和d
的值。还要注意,如果要查找“ sub”标签并仅获取这些子项,则必须使用.//
而不是仅使用//
。点表示法将节点拉到当前节点的“下方”。