如何读取特定的XML值?

时间:2016-06-23 19:21:49

标签: c# xml

这是XML:

foreach (XmlNode nodeSpecification in xmlDokument.SelectSingleNode("//NewDataSet"))
{
    if (nodeSpecification.Name == "Table")
    {
        foreach (XmlNode nodeElements in nodeSpecification)
        {
            if (nodeElements.Name == "ProductCode")
            {
                MessageBox.Show(nodeElements.InnerText);
            }
            if (nodeElements.Name == "SpecificationItemName")
            {
                MessageBox.Show(nodeElements.InnerText);
            }
            if (nodeElements.Name == "SpecificationItemValues")
            {
                MessageBox.Show(nodeElements.InnerText);                          
            }
        } //you were missing a closing } by the way
    }
}

这是我阅读ProductCode,SpectificationItemName和SpecificationItemValues完整值的解决方案。 你能帮我按值读取SpecificationItemValues(如果不止一个,那么一个一个)?谢谢。

这是我的代码:

modal

2 个答案:

答案 0 :(得分:1)

谢谢@ Sam.C和@Amir Sasson。在您的帮助下找到完整的洗液。

if (cvorElementi.Name == "SpecificationItemValues")
{
var xmlValues = System.Net.WebUtility.HtmlDecode(cvorElementi.InnerText);
    XmlDocument valuesDoc = new XmlDocument();
    valuesDoc.LoadXml(xmlValues);

    foreach (XmlNode valuesNode in valuesDoc.SelectSingleNode("//Values"))
    {
        if (valuesNode.Name=="Value")
            {
             MessageBox.Show(valuesNode.InnerText);
            }
    }
}                               

答案 1 :(得分:0)

像这样:
在SpecificationItemValues节点上:

var xmlValues = System.Web.HttpUtility.HtmlDecode(nodeElements.InnerText);
//you might want to use System.Net.WebUtility.HtmlDecode instead to avoid System.Web
XmlDocument valuesDoc = new XmlDocument();
valuesDoc .LoadXml(xmlValues );
var vals = valuesDoc.SelectNodes("//Value");
//Here You Can iterate on vals