2013-08-15 30 views
10

Merhaba, xml'den değer almaya çalışıyorum ancak null değerini gösterir.xml dosyasından tek düğüm değeri nasıl okunur?

İşte benim xml dosyasım.

<?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> 

Ben "MailingGUID" değerini almak istiyorum. i değeri MailingGUID iyi şekilde nasıl

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; 


    } 

söyle: Burada

i denedim koddur.

Teşekkür

+0

, sorun XPath sorgusu ile geçerli: Bu çalıştı. Burada bir göz atın: [Link] (http://www.w3schools.com/xpath/) – Artless

cevap

9

GÜNCELLEME: Ben senin şemalar bir terslik, onlarla başvuruları kaldırılır ve kod iyi çalıştı olabileceğini düşünüyorum.

Sen doğru yoldasın
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 
+1

XmlNode node = xml.DocumentElement.SelectSingleNode ("/ result/data"); // Değerini al string name = node.InnerText; Bu bana nesne refrence hatası verir .. – deepika

+0

Güncelleme .. – Marcus

+0

neden boş alıyorum. Burada kod: private void readXML() { XmlDocument xml = yeni XmlDocument(); xml.Load (Server.MapPath ("~/XMLFile1.xml")); var node = xml.DocumentElement.SelectSingleNode ("/ result/data"); var s = düğüm ["değer"]. InnerText; } – deepika

-1
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 + ","; 
} 
+0

Kodun bazı açıklaması güzel olurdu. – Raidri

+0

(sResponse) onlar mevcut ve ben bir etiket olarak adlandırılan LabelES içine numto geçmesi düğümünde – thepen

+0

xml etiketlerini içeren benim url yolunu yükleniyor. – thepen

0
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()); 
     } 
İlgili konular