Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
xml如何满足c#条件?_C#_Xml - Fatal编程技术网

xml如何满足c#条件?

xml如何满足c#条件?,c#,xml,C#,Xml,我不太了解xml。 我得到了一个项目,其代码如下: XmlNodeList signature = script.GetElementsByTagName("signature", "http://www.w3.org/2000/09/xmldsig#"); if (signature != null) { if (signature.Count > 0) { return true; } } return false; 我无法使xml代码满足从代码返回tru

我不太了解xml。 我得到了一个项目,其代码如下:

XmlNodeList signature = script.GetElementsByTagName("signature", "http://www.w3.org/2000/09/xmldsig#");

if (signature != null) 
{
  if (signature.Count > 0) 
  {
     return true;
  }
}
return false;
我无法使xml代码满足从代码返回true的给定条件

到目前为止我已经试过了,但它是不正确的

<signature xmlns="http://www.w3.org/2000/09/xmldsig#"> 
test
</signature>

测试
有人能告诉我如何创建xml以满足给定条件以获得签名
count>0

当我尝试使用
script.GetElementsByTagName(“签名”)
时,在这种情况下
计数为1
。那么为什么它不使用
GetElementsByTagName(string,string)
方法呢

请帮助我理解函数
GetElementsBytagName
是如何工作的?
提前感谢。

我根据您的源代码尝试了这一点,它工作起来没有任何问题。您的脚本变量可能没有正确初始化

XmlDocument script = new XmlDocument();
script.LoadXml("<signature xmlns=\"http://www.w3.org/2000/09/xmldsig#\">test</signature>");

XmlNodeList signature = script.GetElementsByTagName("signature", "http://www.w3.org/2000/09/xmldsig#");
XmlDocument脚本=新的XmlDocument();
script.LoadXml(“测试”);
XmlNodeList signature=script.GetElementsByTagName(“签名”)http://www.w3.org/2000/09/xmldsig#");

我根据您的源代码尝试了这个方法,它可以正常工作。您的脚本变量可能没有正确初始化

XmlDocument script = new XmlDocument();
script.LoadXml("<signature xmlns=\"http://www.w3.org/2000/09/xmldsig#\">test</signature>");

XmlNodeList signature = script.GetElementsByTagName("signature", "http://www.w3.org/2000/09/xmldsig#");
XmlDocument脚本=新的XmlDocument();
script.LoadXml(“测试”);
XmlNodeList signature=script.GetElementsByTagName(“签名”)http://www.w3.org/2000/09/xmldsig#");

我根据您的代码进行了尝试,效果很好

var script = new XmlDocument();
script.LoadXml("<signature>test</signature>");

var elements = script.GetElementsByTagName("signature");
Console.WriteLine(elements.Count);

for (int i = 0; i < elements.Count; i++)
{
    Console.WriteLine(elements[i].InnerXml);
}
var script=newxmldocument();
script.LoadXml(“测试”);
var elements=script.GetElementsByTagName(“签名”);
Console.WriteLine(elements.Count);
for(int i=0;i

链接到。您的脚本变量是否包含任何元素?

我根据您的代码尝试了它,它对我有效

var script = new XmlDocument();
script.LoadXml("<signature>test</signature>");

var elements = script.GetElementsByTagName("signature");
Console.WriteLine(elements.Count);

for (int i = 0; i < elements.Count; i++)
{
    Console.WriteLine(elements[i].InnerXml);
}
var script=newxmldocument();
script.LoadXml(“测试”);
var elements=script.GetElementsByTagName(“签名”);
Console.WriteLine(elements.Count);
for(int i=0;i

链接到。脚本变量是否包含任何元素?

getElementsByTagName返回标记名与传递值匹配的xmlNode列表,例如,要获取带有标记名test的所有节点,可以使用函数getElementsByTagName(“test”)

您可以针对以下xml进行测试

        <?xml version="1.0" encoding="utf-8" ?>
      <Document>
        <signature xmlns="http://www.w3.org/2000/09/xmldsig#">
          <TestSign></TestSign>
        </signature>
        <signature xmlns="http://www.w3.org/2000/09/xmldsig#">
          <TestSign></TestSign>
        </signature>
        <signature xmlns="http://www.w3.org/2000/09/xmldsig#">
          <TestSign></TestSign>
        </signature>
    </Document>

getElementsByTagName返回标记名与传递值匹配的xmlNode列表,例如,要获取标记名为test的所有节点,可以使用函数getElementsByTagName(“test”)

您可以针对以下xml进行测试

        <?xml version="1.0" encoding="utf-8" ?>
      <Document>
        <signature xmlns="http://www.w3.org/2000/09/xmldsig#">
          <TestSign></TestSign>
        </signature>
        <signature xmlns="http://www.w3.org/2000/09/xmldsig#">
          <TestSign></TestSign>
        </signature>
        <signature xmlns="http://www.w3.org/2000/09/xmldsig#">
          <TestSign></TestSign>
        </signature>
    </Document>

阅读注释后,如果计数器返回0,并且脚本对象是XmlDocument,那么问题显然是xml的负载。。。 看看这个,它对我有用:

var script = new XmlDocument();
        script.LoadXml("<?xml version=\"1.0\" encoding=\"UTF-8\"?><signature xmlns=\"http://www.w3.org/2000/09/xmldsig#\">test</signature>");
        XmlNodeList signature = script.GetElementsByTagName("signature", "http://www.w3.org/2000/09/xmldsig#");

        if (signature != null)
        {
            if (signature.Count > 0)
            {
                return true;
            }
        }
        return false;
var script=newxmldocument();
script.LoadXml(“测试”);
XmlNodeList signature=script.GetElementsByTagName(“签名”)http://www.w3.org/2000/09/xmldsig#");
if(签名!=null)
{
如果(signature.Count>0)
{
返回true;
}
}
返回false;

阅读注释后,如果计数器返回0,并且脚本对象是XmlDocument,那么问题显然是xml的负载。。。 看看这个,它对我有用:

var script = new XmlDocument();
        script.LoadXml("<?xml version=\"1.0\" encoding=\"UTF-8\"?><signature xmlns=\"http://www.w3.org/2000/09/xmldsig#\">test</signature>");
        XmlNodeList signature = script.GetElementsByTagName("signature", "http://www.w3.org/2000/09/xmldsig#");

        if (signature != null)
        {
            if (signature.Count > 0)
            {
                return true;
            }
        }
        return false;
var script=newxmldocument();
script.LoadXml(“测试”);
XmlNodeList signature=script.GetElementsByTagName(“签名”)http://www.w3.org/2000/09/xmldsig#");
if(签名!=null)
{
如果(signature.Count>0)
{
返回true;
}
}
返回false;


签名用大写字母S?@LInsoDeTeh我已经更正了代码您调试过了吗?签名为空还是计数为0?什么是
脚本
GetElementsByTagName
获取具有该标记名的所有子体,因此,如果脚本指向签名元素,则可以有效地搜索签名。它现在是否与更正的代码一起工作?对我来说,你粘贴的代码返回true,没有任何问题。签名的基本条件是?@LInsoDeTeh我已经更正了代码,你调试过了吗?签名为空还是计数为0?什么是
脚本
GetElementsByTagName
获取具有该标记名的所有子体,因此,如果脚本指向签名元素,则可以有效地搜索签名。它现在是否与更正的代码一起工作?对我来说,你粘贴的代码返回true没有任何问题谢谢你的回答。我得到的元素计数为0。我需要使用
GetElementsByTabName(string,string)
[“方法来检索元素。谢谢你的回答。我得到的元素计数为0。我需要使用
GetElementsByTabName(string,string)
[”用于检索元素的方法。谢谢回答。代码运行良好,但我得到了
元素。count=0
但我更想要它。谢谢回答。代码运行良好,但我得到了
元素。count=0
但我更想要它谢谢回答。但我仍然得到了
signature.count=0
。我需要更多。标记名需要与搜索字符串完全相同。例如,在您的案例中,请交叉检查搜索的大小写感谢您的回答。但我仍然得到
签名。count=0
。我需要更多。标记名需要与您的se完全相同拱形字符串例如签名在您的案例中,请交叉检查搜索的大小写我已经尝试了您的代码,但仍然是
signature.Cou