使用多个NameSpaces C#从XML文件返回数据

时间:2013-03-18 15:06:28

标签: c# xml xml-namespaces

我无法将数据从Linq返回到XML查询。 我有以下XML

<sdnList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://tempuri.org/sdnList.xsd">
  <publshInformation>
    <Publish_Date>03/14/2013</Publish_Date>
    <Record_Count>5440</Record_Count>
  </publshInformation>
</sdnList>

我试图使用以下

获取发布日期的值
XDocument xDoc = XDocument.Load(fileName);
XNamespace xNS = "http://tempuri.org/sdnList.xsd";
XNamespace xNS1 = "http://www.w3.org/2001/XMLSchema-instance";
string strCurrentDate = xDoc.Element(xNS1 + sdnList").Element("publshInformation").Element("Publish_Date").Value; 

这只返回一个对象预期错误。 我知道我的问题在于名称空间(并且很可能是一个简单的解决方案)

谢谢

2 个答案:

答案 0 :(得分:2)

该文档中的所有元素都在http://tempuri.org/sdnList.xsd命名空间中,因此您需要类似

的内容
xDoc.Element(xNS + "sdnList")
    .Element(xNS + "publshInformation")
    .Element(xNS + "Publish_Date").Value;

答案 1 :(得分:1)

这将有效:

XNamespace xNS = "http://tempuri.org/sdnList.xsd";
string strCurrentDate = xDoc.Element(xNS + "publshInformation").Element(xNS + "Publish_Date").Value;