C# 我无法从以下两个元素中获取值的原因是什么?

C# 我无法从以下两个元素中获取值的原因是什么?,c#,xml,xslt,sharepoint-2010,C#,Xml,Xslt,Sharepoint 2010,我有一段代码,它以xml格式提交查询和结果,然后将结果分配给字符串变量“tmp”,然后将该变量作为xml输入提供给一个函数,该函数使用单独的xslt样式表将xml结果转换为html XML: 调试完成后,会发现没有返回元素。但是,当我简单地将查询字符串复制到浏览器中时,xml中的结果确实会显示有问题的元素 在提交查询以确保返回所有元素的方式上,我可以做什么不同的事情 谢谢你从理论上回答你的问题。是的,有很多原因,您的xslt转换不是其中之一。应用于xml的xslt输出如下: <html&g

我有一段代码,它以xml格式提交查询和结果,然后将结果分配给字符串变量“tmp”,然后将该变量作为xml输入提供给一个函数,该函数使用单独的xslt样式表将xml结果转换为html

XML: 调试完成后,会发现没有返回元素。但是,当我简单地将查询字符串复制到浏览器中时,xml中的结果确实会显示有问题的元素

在提交查询以确保返回所有元素的方式上,我可以做什么不同的事情


谢谢你从理论上回答你的问题。是的,有很多原因,您的xslt转换不是其中之一。应用于xml的xslt输出如下:

<html>
   <body>
      <p>
         You are connected to the <b>Mitcham</b> telephone exchange

      </p><br><p>
         According to <b>BT ADSL</b>, houses at your postcode should be able to suppor the following:

      </p><br><table>
         <tr>
            <td><img src="/img/tick_BGAvailabilityChecker.png"></td>
            <td>
               up to
               2048
            </td>
         </tr>
      </table>
   </body>
</html>


您已连接到Mitcham电话交换机


根据英国电信ADSL,您的邮政编码处的房屋应能够支持以下各项:
高达 2048

这与您声称无法显示Linespeed元素形成对比。错误出现在代码的其他部分,但您没有显示。

结果表明代码没有任何错误。选择查询字符串后:

string url = String.Format("http://api.samknows.com/checker.do?user={0}&pass={1}&phone=
{2}&postcode={3}&buildingnum={4}&checks={5}&options{6}&output{7}"
我注意到选项和输出参数中缺少赋值运算符(=)。加上这些之后,一切都完美地工作了

愚蠢的错误,问题终于解决了


感谢Allways提供的所有建议。

请提供有效的.xml输入。您发布的输入示例格式不正确,它有一个开始标记,但没有匹配的结束标记。您好,我已经编辑了xml。上面是一个有效的xml。ThanksYour.xsl的格式以及它产生的输出也不完善。xml是我从提交查询中得到的结果。所以我无法控制它的显示方式。我之前犯了一个错误,没有包括结束标记。使用xslt样式表,我可以选择显示哪些元素值,但有三个元素值无论我做什么都不会显示(Linespeed、Linecode、Matched)。现在很令人沮丧。希望你能对此有所启发。谢谢,你是正确的,所有的东西都会按要求显示出来,只是没有显示的值。没有显示值“2048”,我什么也没有得到。现在,和元素也会发生这种情况,这很奇怪!代码的其余部分仅为1。包含要提交的查询的字符串,2。使用xslt样式表处理转换的函数。我不明白的是,我怎样才能让一些值显示出来,而另一些值不显示出来。我知道代码是正确的,否则我将无法显示任何值。@DanielPerez正如我所说,您的算法的xslt部分是正确的。你的问题在别处。看来它又回到了绘图板上了,还有更多的研究!。无论如何谢谢你@丹尼尔佩雷斯Np。只需关闭问题或选择此作为答案。调试后,查询结果似乎出于某种原因没有返回元素。我添加了用于执行查询并返回结果的代码。
<Linecode>
<Linespeed>
<Matched>
<Provider>
<Type>
<Updated>
void cmdSubmit_Click(object sender, EventArgs e)
{
//Variable declarations
string user = "PRIVATE";
string pass = "PRIVATE";
string phone = TextBox1.Text;
string postcode = TextBox2.Text;
string buildnum = TextBox3.Text;
string check = "adsl";
string option = "adsllinecheck";
string outputformat = "xml";

string url = String.Format("http://api.samknows.com/checker.do?user={0}&pass={1}&phone=
{2}&postcode={3}&buildingnum={4}&checks={5}&options{6}&output{7}", user, pass, phone, 
postcode, buildnum, check, option, outputformat);
Uri uri = new Uri(url);

 string data = "field-keywords=ASP.NET 3.5";

 if (uri.Scheme == Uri.UriSchemeHttp)
 {
 HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);
 request.Method = WebRequestMethods.Http.Post;
 request.ContentLength = data.Length;
 request.ContentType = "application/x-www-form-urlencoded";

 StreamWriter writer = new StreamWriter(request.GetRequestStream());
 writer.Write(data);
 writer.Close();
 HttpWebResponse response = (HttpWebResponse)request.GetResponse();

 StreamReader reader = new StreamReader(response.GetResponseStream());
 string tmp = reader.ReadToEnd();
<html>
   <body>
      <p>
         You are connected to the <b>Mitcham</b> telephone exchange

      </p><br><p>
         According to <b>BT ADSL</b>, houses at your postcode should be able to suppor the following:

      </p><br><table>
         <tr>
            <td><img src="/img/tick_BGAvailabilityChecker.png"></td>
            <td>
               up to
               2048
            </td>
         </tr>
      </table>
   </body>
</html>
string url = String.Format("http://api.samknows.com/checker.do?user={0}&pass={1}&phone=
{2}&postcode={3}&buildingnum={4}&checks={5}&options{6}&output{7}"