【发布时间】:2016-05-27 14:13:32
【问题描述】:
您好,我希望有人可以帮助我,我一直在努力在 XML 文件中获取特定文本,但到目前为止还没有成功。我进行了很多研究,到目前为止,互联网上可以找到的所有项目都没有帮助。
我正在尝试读取由第三方应用程序生成的导出 XML 文件。现在我开始怀疑是否根据正确的 XML 规则设置了 XML?我有以下 XML:
<?xml version="1.0" encoding="utf-8"?>
<Document>
<DocumentInfo>
<Created>2016-05-23T13:19:41.0528572Z</Created>
<ExportSetting>None</ExportSetting>
<InstalledProducts>
<Product>
<DisplayName>Some display name</DisplayName>
<DisplayVersion>Some display version</DisplayVersion>
</Product>
<OptionPackage>
<DisplayName>Some display name</DisplayName>
<DisplayVersion>Some display version</DisplayVersion>
</OptionPackage>
<Product>
<DisplayName>Some display name</DisplayName>
<DisplayVersion>Some display version</DisplayVersion>
</Product>
<OptionPackage>
<DisplayName>Some display name</DisplayName>
<DisplayVersion>Some display version</DisplayVersion>
</OptionPackage>
<Product>
<DisplayName>Some display name</DisplayName>
<DisplayVersion>Some display version</DisplayVersion>
</Product>
</InstalledProducts>
</DocumentInfo>
<Some.Block ID="0">
<AttributeList>
<Interface>
<Sections xmlns="http://www.somenamespace.com">
<Section Name="Input">
<Member Name="Member name 1" Datatype="Bool" />
<Member Name="Member name 2" Datatype="Int" />
<Member Name="Member name 3" Datatype="Int" />
</Section>
获取显示名称元素等是没有问题的,因为这看起来是普通的xml代码,但是第二部分比较困难。
我只想提取属性名为“Input”的部分的成员属性“Name”和“Datatype”的值。
我用 XMLPath、getNodebytagname 等尝试了很多东西。
试过这个:
xmlnode = doc.GetElementsByTagName("Sections");
for (i = 0; i <= xmlnode.Count - 1; i++)
{
xmlnode[i].ChildNodes.Item(0).InnerText.Trim();
str = xmlnode[i].ChildNodes.Item(0).InnerText.Trim() + " " + xmlnode[i].ChildNodes.Item(1).InnerText.Trim() + " " + xmlnode[i].ChildNodes.Item(2).InnerText.Trim();
MessageBox.Show(str);
}
并尝试过:
//XmlNodeList elemList = doc.GetElementsByTagName("Section[@Name='Input']");
//for (int x = 0; x < elemList.Count; x++)
//{
// string attrVal = elemList[x].Attributes["Interface"].Value;
//}
到目前为止,没有任何效果,代码似乎无法超越名称空间的部分。有人有想法吗?
【问题讨论】:
-
xmlnode[i].ChildNodes.Item(0).Attribute("Attribute_Name").Value
标签: c# .net xml visual-studio-2015