我有以下字符串
<SessionInfo>
<SessionID>MSCB2B-UKT3517_f2823910df-5eff81-528aff-11e6f-0d2ed2408332</SessionID>
<Profile>A</Profile>
<Language>ENG</Language>
<Version>1</Version>
</SessionInfo>
现在我想获得 SessionID 的值。我在下面试过..
var rootElement = XElement.Parse(output);//output means above string and this step has values
但在这里,
var one = rootElement.Elements("SessionInfo");
它不起作用。我能做什么。
如果像下面这样的xml字符串怎么办?我们使用相同来获取 sessionID
<DtsAgencyLoginResponse xmlns="DTS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="DTS file:///R:/xsd/DtsAgencyLoginMessage_01.xsd">
<SessionInfo>
<SessionID>MSCB2B-UKT351ff7_f282391ff0-5e81-524548a-11eff6-0d321121e16a</SessionID>
<Profile>A</Profile>
<Language>ENG</Language>
<Version>1</Version>
</SessionInfo>
<AdvisoryInfo />
</DtsAgencyLoginResponse>
答案 0 :(得分:6)
rootElement
已经引用了<SessionInfo>
元素。试试这个:
var rootElement = XElement.Parse(output);
var sessionId = rootElement.Element("SessionID").Value;
答案 1 :(得分:1)
您可以按xpath选择节点,然后获取值:
XmlDocument doc = new XmlDocument();
doc.LoadXml(@"<SessionInfo>
<SessionID>MSCB2B-UKT3517_f2823910df-5eff81-528aff-11e6f-0d2ed2408332</SessionID>
<Profile>A</Profile>
<Language>ENG</Language>
<Version>1</Version>
</SessionInfo>");
string xpath = "SessionInfo/SessionID";
XmlNode node = doc.SelectSingleNode(xpath);
var value = node.InnerText;
答案 2 :(得分:0)
答案 3 :(得分:0)
试试这个方法:
private string parseResponseByXML(string xml)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xml);
XmlNodeList xnList = xmlDoc.SelectNodes("/SessionInfo");
string node ="";
if (xnList != null && xnList.Count > 0)
{
foreach (XmlNode xn in xnList)
{
node= xn["SessionID"].InnerText;
}
}
return node;
}
您的节点:
xmlDoc.SelectNodes("/SessionInfo");
不同样本
xmlDoc.SelectNodes("/SessionInfo/node/node");
我希望它有所帮助。