簡體   English   中英

從XML獲取標簽中的標簽值

[英]Getting tag values with in the Tags from XML

我在Xml文件的Content下面,我試圖獲取<text><content .. />標記的值,這些值僅在標記<navmap> ... </navmap>

我正在using Windows.Data.Xml.Dom; nameSpace的XmlDocument() using Windows.Data.Xml.Dom;

我以前使用過XmlDocument() ,但是這種類型的XMl內容卻大不相同,我不知道必須為標記中的Tag值使用哪個屬性。

      <docTitle>
         <text>XXXXXXX</text>
      </docTitle>
  <navMap>
    <navPoint id="navpoint-1" playOrder="1">
      <navLabel>
        <text>Title Page</text>
      </navLabel>
        <content src="000.html" />
    </navPoint>
    <navPoint id="navpoint-2" playOrder="2">
      <navLabel>
        <text>Main Text</text>
      </navLabel>
        <content src="01M.html" />
    </navPoint>
  </navMap>

我正在使用c#嘗試使用Windows商店應用程序,就像這樣。

            using Windows.Data.Xml.Dom;
             ---------------
             ---------------
             ---------------

            StorageFile tocFile = await finalfolder.GetFileAsync(tocFileValue);
            string fileContents1 = await FileIO.ReadTextAsync(tocFile);
            string encodedContent1 = fileContents1.Replace("&nbsp;", "&#160;");
            tocDocument.LoadXml(encodedContent1,loadSettings1);
            XmlNodeList tocNodeList = tocDocument.GetElementsByTagName("navMap");
            foreach (XmlElement Element in tocNodeList)
            {
                //Element is showing as null..
            }   

誰熟悉using Windows.Data.Xml.Dom;的nameSpace的XmlDocument() using Windows.Data.Xml.Dom; 給我建議。

謝謝

您可以簡單地做到這一點...

 XmlDocument xml = new XmlDocument();
        xml.LoadXml(urXml);

    XmlNodeList textlist = xml.GetElementsByTagName("text");
    XmlNodeList contentList = xml.GetElementsByTagName("content");

    for (int i = 0; i < textlist.Count; i++)
    {
        string s1 = textlist[i].InnerText; //
    }
    for (int j = 0; j < contentList.Count; j++)
    {
        string s2 = contentList[j].InnerText;
    }

U可以通過this獲取文本。字符串只是為了表明您可以獲取內部文本。如果您要將所有值存儲在text標簽下。使用列表並添加其innerText

喜歡:-

for (int i = 0; i < textlist.Count; i++)
{
if(i==0)
List<string> str=new list<string>();

str.Add(textlist[i].InnerText);
}

內容標簽也是如此。

希望這可以幫助..:)

使用XmlDocument,您可以執行以下操作...

XmlNodeList xnList = xd.SelectNodes("navMap/navPoint"); //xd being your xmldocument.   returns all "navPoint" nodes under navMap and navMap  is your root node
        foreach (XmlNode node in xnList)
        {
            string retText = node["navLabel"]["text"].InnerText;                 // navLabel/text
            string retContentAtt = node["content"].Attributes["src"].Value;    // navPoint/content src=" 
        }

我認為這就是您想要的。 希望能幫助到你

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM