我有一个看起来像
的xml文件<root>
<allnames>
<name1>george</name1>
<name2>lukas</name2>
<name3>nick</name3>
</allnames>
</root>
我想在Node&#34; Allnames&#34;下添加一个数组。每个孩子 所以阵列看起来像 {&#34; george&#34;,&#34; lukas&#34;,&#34; nick&#34; (3项)。
改为使用此代码
public string[] getStrings(string path)
try
{
List<string> whatToReturn = new List<string>();
XmlNodeList nodelist = xml.SelectNodes(path);
foreach (XmlNode node in nodelist)
{
whatToReturn.Add(node.InnerText);
}
return whatToReturn.ToArray();
}
catch (System.NullReferenceException)
{
return null;
}
}
它返回:{&#34; georgelukasnick&#34; }(1项)。
我想要的只是返回3项而不是1 ..任何帮助?
答案 0 :(得分:3)
您正在错误地访问文本。
基本上,您选择.container{
width: 400px;
}
.images-cq__item{
width: 120px;
height: 120px;
background: green;
margin-right: 10px;
margin-bottom: 10px;
display: inline-block;
}
元素(单个节点),然后将其AllNames
值添加到列表中 - 但InnerText
的{{1}}为<强>所有的内部文本连接起来。
您应该选择InnerText
元素,然后遍历其子元素 - 您可以使用XPath执行此操作:
AllNames
您也可以通过XDocument类以更简单的方式使用LINQ to XML(我的AllNames
变量是您的示例XML):
XmlNodeList nodeList = xml.SelectNodes("root/allnames/child::node()");
嗯,对我来说更简单;)
答案 1 :(得分:2)
使用选择&#34; allnames&#34;的子节点的Xpath。 像这样:
xml.SelectNodes("root/allnames/*");