簡體   English   中英

在C#InnerText中加載XML

[英]Load XML in C# InnerText

我有一個C#服務,我每隔1秒鍾循環通過一個目錄以查找XML文件。

這些XML文件可能如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<job>
<type>freelance</type>
<text>blah</text>
</job>

在foreach中,我執行以下操作:

var doc = new XmlDocument();
doc.LoadXml(xmlFile);

XmlNode xmltype = doc.DocumentElement.SelectSingleNode("/job/type");

而且,我想在程序中使用這些字符串。 使用xmltype.InnerText不起作用。 MSDN上的文檔沒有為我提供任何新內容,我想知道我做錯了什么。

下面的控制台程序將輸出“ freelance”。 我認為問題可能出在您的某些XML上-您所有的XML文檔都遵循相同的模式嗎? 我猜測代碼有時會失敗並顯示NullReferenceException 我添加了一個空檢查,以防止出現這種情況。

為了幫助調試服務,我傾向於使用此處介紹的技術應用程序作為控制台應用程序(以便於調試)或Windows服務運行。

using System;
using System.Xml;

public class Program
{

    static string xmlFile = @"<?xml version=""1.0"" encoding=""UTF-8""?>
        <job>
        <type>freelance</type>
        <text>blah</text>
        </job>";

    public static void Main()
    {
        var doc = new XmlDocument();
        doc.LoadXml(xmlFile);

        XmlNode xmltype = doc.DocumentElement.SelectSingleNode("/job/type");
        if(xmltype==null)
        {
           Console.WriteLine("/job/type not found");
        } else {
           Console.WriteLine(xmltype.InnerText);
        }
    }
}

首先,您必須檢查xml文件。是否有數據。 之后,采取一個特定的節點檢查innerText 例如

這是文本

XmlNode xmlType = doc.DocumentElement.SelectSingleNode("/job/type");

xmlType.innerText = "This is the Text";

xmlType.Value = "Stack";

嘗試這個:

string str = xmltype.Value;

暫無
暫無

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

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