0

我继承了 C# 代码,但在处理基本 XML 时遇到了一些问题。我更习惯在 Java 中使用 JDOM。我还阅读了许多不同的教程,到目前为止,没有任何帮助。

这行代码Console.WriteLine("at id "+xmlReader.Value.ToString());将输出id两次,首先是值,然后是 null。

at id 10805
at id 

XmlTextReader不是这项工作的最佳工具?它的行为似乎与我的预期不同,即当我使用它时xmlReader.Read(),我希望它能够读取完整的 XML 元素。

对于 JDOM,我使用例如String userEmail = messagePackage.getRootElement().getChildTextTrim("USEREMAIL");C# 中是否有类似的东西?

响应:

<addAgentResponse xmlns="http://www.**********.com/soa/oi/ccma/service">
  <addAgentResult>true</addAgentResult>
  <agentLocalID>10805</agentLocalID>
  <errorMsg/>
</addAgentResponse>

处理响应的代码:

response = request.GetResponse() as HttpWebResponse;

XmlTextReader xmlReader = new XmlTextReader(response.GetResponseStream());
while (xmlReader.Read())
{
    switch (xmlReader.Name)
    {
        case "errorMsg":
            xmlReader.Read();
            Console.WriteLine("at error");
            if (xmlReader.Value.ToString() != "")
            {
                errorText = xmlReader.Value.ToString();
                failures = true;
            }
            break;
        case "agentLocalID":
            xmlReader.Read();
            Console.WriteLine("at id "+xmlReader.Value.ToString());
            break;
    }
}

任何指针将不胜感激。

4

1 回答 1

0

您可以改用 XmlDocument。我通常走那条路,除非我需要快速阅读大量文件。

http://msdn.microsoft.com/en-us/library/e48zttz7.aspx将为您提供从流中加载 xml 的语法。

加载文档后,可以使用 xpath 查询 xml http://www.w3schools.com/xpath/xpath_syntax.asp

前任。

   XmlDocument doc = new XmlDocument;
   doc.Load(response.GetResponseStream);

   XmlNode node = doc.SelectChildNode("/AddAgentResponse/agentLocalID");
   if(node != null) { .... }
于 2013-04-29T12:32:54.420 回答