XML
<table>
<row>
<field name="ID">22490</field>
<field name="post_date">2014-03-24 09:55:50</field>
<field name="post_title">Joe Bloggs</field>
<field name="post_status">Live</field>
<field name="post_modified">2017-07-31 15:33:46</field>
</row>
<row>
<field name="ID">29078</field>
<field name="post_date">2017-08-01 08:19:57</field>
<field name="post_title">Mary Poppins</field>
<field name="post_status">auto-draft</field>
<field name="post_modified">2017-08-01 08:19:57</field>
</row><table>
我试图遍历上面的xml,如何从上面的post_title字段中获取值“Joe Bloggs”?
这是我到目前为止所拥有的:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("C:\\myxmlfile.xml");
XmlNodeList nodeList = xmlDoc.GetElementsByTagName("row");
foreach (XmlNode node in nodeList)
{
string post_title = /// how can i get this
string post_status = /// how can i get this
}
我可以遍历节点列表但是,我无法获得每个字段中的值。
答案 0 :(得分:1)
您可以检查属性名称是否符合预期
foreach (XmlNode node in nodeList)
{
string temp = XmlNode.SelectSingleNode("field[@name='post_title']").InnerText;
}
这肯定会有用。
答案 1 :(得分:0)
您也可以使用xPath。
XmlNodeList postTitleFields = xmlDoc.SelectNodes("//field[@name='post_title']");
foreach (XmlNode postTitleField in postTitleFields)
{
string post_title = postTitleField.InnerText;
}
答案 2 :(得分:0)
这就是我解决问题的方法:
XmlNodeList orgFields = xmlDoc.SelectNodes("//row");
foreach (XmlNode org in orgFields)
{
post_title = org.ChildNodes[2].InnerText;
post_status = org.ChildNodes[3].InnerText;
}