![](/img/trans.png)
[英]How to get n value from RSA public key XML file .net core c#
[英]how to take value from xml file in .net c#
我有一個xml文件,我想使用linq.Xml來獲取內部文本,如下所示
<?xml version="1.0" encoding="utf-8" ?>
<testObject class="LN" version="16A" distName="CEL-1" id="456" xmlns="kaml20.xsd">
<p name="rcc">424</p>
<p name="kcc">02</p>
<p name="testname">testobject</p>
</testObject>
而且我沒有執行以下代碼
private static string GetvalueNokia(XElement pin, string val)
{
string fname="";
try
{
//string location = pin.Descendants("cellName").Single().Value;
//return pin
//.Descendants("p")
//.FirstOrDefault(x => x.Attributes().Any(a => a.Value.ToUpper() == val.ToUpper())).Value;
////.Attribute("value").Value;
var data = from atts in pin.Elements("name")
select new
{
cell= (string)atts.Element("name")
};
}
}
編輯我的密碼如下所示
<testObject class="LN" version="16A" distName="CEL-1" id="456" xmlns="kaml20.xsd">
<p name="cellName">testname</p>
<p name="rcc">424</p>
<p name="kcc">02</p>
</testObject>
看起來您想獲取xml節點的內部文本,該文本在name
屬性中具有特定值,如果正確,則可以嘗試以下代碼:
var data = (from node in pin.Descendants("name")
where node.Attribute("name") !=null && node.Attribute("name").Value == value
select new
{
AttributeValue = node.Attribute("name").Value,
InnerText = node.Value
});
我們需要首先過濾具有屬性name
的節點,並結合使用包含作為輸入提供的值的節點。
如果要對xml nodes屬性中的輸入參數進行區分大小寫的比較,則可以使用String.Compare
例如:
String.Equals(node.Attribute("name").Value, value,StringComparison.OrdinalIgnoreCase)
並且如果pin
是您試圖從中獲取name
屬性值的元素,則只需以屬性名稱作為輸入調用它的Attribute
方法,然后訪問Value
屬性,例如:
private static string GetvalueNokia(XElement pin, string val)
{
return pin.Attribute("name")?.Value;
}
希望能幫助到你!
問題是,當您調用Descendants("p")
等時,由於父節點屬於特定的命名空間,因此無法獲得結果。
private static string GetValueNokia(XElement pin, string val)
{
XNamespace ns = "kaml20.xsd";
var paragraph = pin.Descendants(ns + "p").FirstOrDefault(
p => p.Attributes("name").FirstOrDefault(a => a.Value == val) != null
);
return paragraph == null ? null : paragraph.Value;
}
您稱之為:
var pin = XElement.Parse(xml);
string val = "kcc";
Console.WriteLine(GetValueNokia(pin, val));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.