Как читать одиночное значение node из XML файла - программирование
Подтвердить что ты не робот

Как читать одиночное значение node из XML файла

Привет, я пытаюсь получить значение из xml, но он показывает node null.

Вот мой xml файл.

<?xml version="1.0" encoding="utf-8"?>
<result xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://www.cfhdocmail.com/TestAPI2/Result.xsd https://www.cfhdocmail.com/TestAPI2/Result.xsd" xmlns="https://www.cfhdocmail.com/TestAPI2/Result.xsd">
  <data>
    <key>MailingGUID</key>
    <value>0aa2b2e3-7afa-4002-ab2f-9eb4cbe33ae7</value>
  </data>
  <data>
    <key>OrderRef</key>
    <value>52186</value>
  </data>
</result>

Я хочу получить "MailingGUID" .

Вот код, который я пробовал:

  private void readXML()
    {
        XmlDocument xml = new XmlDocument();
        // You'll need to put the correct path to your xml file here
        xml.Load(Server.MapPath("~/XmlFile11.xml"));

        // Select a specific node
        XmlNode node = xml.SelectSingleNode("result/data/value");
        // Get its value
        string name = node.InnerText;


    }

Расскажите, как я могу получить MailingGUID.

Спасибо

4b9b3361

Ответ 1

UPDATE: Я думаю, что может быть что-то не так с вашими схемами, я удалил ссылки на них, и ваш код работал нормально. Я пробовал это:

const string str = "<?xml version=\"1.0\" encoding=\"utf-8\"?><result><data><key>MailingGUID</key><value>0aa2b2e3-7afa-4002-ab2f-9eb4cbe33ae7</value></data><data><key>OrderRef</key><value>52186</value></data></result>";
var xml = new XmlDocument();
xml.LoadXml(str);
xml.DocumentElement.SelectSingleNode("/result/data/value").InnerText

Ответ 2

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;


DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = factory.newDocumentBuilder();                   

      //Parsing of xml is done here
        Document doc = builder.parse(new File("C:\\Users\\User_Name\\Documents\\My Received Files\\PDSL_ABM.xml"));

        //Here we get the root element of XML and print out
        doc.getDocumentElement().normalize();
        System.out.println ("Root element of the doc is " + doc.getDocumentElement().getNodeName());

        NodeList list = doc.getElementsByTagName("MailingGUID");
        int totalMailingGUID  =list.getLength();
        System.out.println("Total no of MailingGUID  : " + totalSupplierPartID);



      //Traversing all the elements from the list and printing out its data
        for (int i = 0; i < list.getLength(); i++) {

      //Getting one node from the list.
        Node childNode = list.item(i);
        System.out.println("MailingGUID  : " + childNode.getTextContent());
        }

Ответ 3

xml.LoadXml(sResponse);
XmlNodeList Nnodes = xml.SelectNodes("/api_result/entries_success");

foreach (XmlNode Nnode in Nnodes)
{
    string entries_success = Nnode["numto"].InnerText;
    LabelES.Text += entries_success + ",";
}