我正在开发asp.net移动应用程序。我使用XML作为数据库。我正在使用XML文件的以下部分通过LINQ to XML查询数据。
<USER-INTERFACE-DEFINITION>
<MIMICS>
<MIMIC ID="1" NAME="Home">
<SECTIONS>
<SECTION ID ="1" NAME="System Health" CONTROL-TYPE="Button">
<DATAITEMS>
</DATAITEMS>
</SECTION>
<SECTION ID ="2" NAME="Network Status" CONTROL-TYPE="Button">
<DATAITEMS>
</DATAITEMS>
</SECTION>
<SECTION ID ="3" NAME="ESD Status" CONTROL-TYPE="Button">
<DATAITEMS>
</DATAITEMS>
</SECTION>
<SECTION ID ="4" NAME="DWPLEM" CONTROL-TYPE="Button">
<DATAITEMS>
</DATAITEMS>
</SECTION>
<SECTION ID="5" NAME="Manifolds" CONTROL-TYPE="Drowpdown">
<DATAITEMS>
</DATAITEMS>
</SECTION>
<SECTION ID ="6" NAME="Wells" CONTROL-TYPE="Drowpdown">
<DATAITEMS>
</DATAITEMS>
</SECTION>
<SECTION ID ="7" NAME="Alarms" CONTROL-TYPE="Button">
<DATAITEMS>
</DATAITEMS>
</SECTION>
<SECTION ID ="8" NAME="House Keeping" CONTROL-TYPE="Button">
<DATAITEMS>
</DATAITEMS>
</SECTION>
</SECTIONS>
</MIMIC>
</USER-INTERFACE-DEFINITION>在上面的XML文件中,我想检索条件为MIMIC ID="1“的部分节点的"NAME”属性。我不想修改现有的XML文件。我将带有类似元素的node的服务器集合作为上面的XML文件。您能提供给我任何代码或链接,我可以通过它来解决上述问题吗?
发布于 2010-08-16 23:08:09
可能类似于(不是LINQ,但如果您愿意,可以将其与LINQ一起使用):
var nodes = myXmlDoc.SelectNodes("/USER-INTERFACE-DEFINITION/MIMICS/MIMIC[@ID='1']/SECTION/@NAME");
foreach(var node in nodes)
{
string name = node.Value;
// do something with each name
}(假设myXmlDoc是使用.Load(yourXmlFileHer)创建的,并且假定USER-INTERFACE-DEFINITION是XML的根,否则,请从//开始)
发布于 2010-08-16 23:10:02
我将尽我最大的努力,但您可能不想提供XML的相关部分,以使我们更容易。该部分是否具有此条件或名称。至少我可以帮你开始。
让我们从这个开始:
var name = xml.Descendants<SECTION>.Where(s => s.id == 1).GetFirstChild<NAME>();希望我没有离题,如果是这样的话,我想有人会给出一个更好的答案。
好的,在看了您的XML之后,我有一段路要走。而且,当我考虑它的时候,后代可能不会工作。
发布于 2010-08-16 23:13:55
假设XML保存在一个名为xml的字符串中,那么:
var root = XElement.Parse(xml);
var results = root
.Descendants("MIMIC")
.Where( e => e.Attribute("ID").Value == "1" )
.SelectMany(e => e.Descendants("SECTION").Attributes("NAME" ) ) ;https://stackoverflow.com/questions/3494385
复制相似问题