xml如何满足c#条件?
我不太了解xml。 我得到了一个项目,其代码如下: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
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