[英]How would be the xml to satisfy c# condition?
我不太了解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代碼來滿足給定條件以從代碼return true
。
到目前為止,我已經嘗試過了,但這是不正確的。
<signature xmlns="http://www.w3.org/2000/09/xmldsig#">
test
</signature>
任何人都可以讓我知道如何創建一個滿足給定條件的xml,以使簽名count > 0
嗎?
當我嘗試使用script.GetElementsByTagName("signature")
時, count is 1
。 那么,為什么它不能與GetElementsByTagName(string,string)
方法一起使用?
並且請幫助我了解GetElementsBytagName
函數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#");
我根據您的代碼進行了嘗試,對我有用。
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);
}
鏈接到小提琴 。 您的腳本變量是否包含任何元素?
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的LOAD ...請檢查一下,它對我有用:
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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.