Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 读取XML时出现异常-“;需要名称空间管理器或XsltContext“;_C#_Xml - Fatal编程技术网

C# 读取XML时出现异常-“;需要名称空间管理器或XsltContext“;

C# 读取XML时出现异常-“;需要名称空间管理器或XsltContext“;,c#,xml,C#,Xml,我的xml如下所示 <?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/xsl" href="../../config/janes-deliver.xsl"?> <!DOCTYPE janes:record SYSTEM "../../config/janesml-delivery-norm-2.1.dtd"> <janes:record xmlns:janes=

我的xml如下所示

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="../../config/janes-deliver.xsl"?>
<!DOCTYPE janes:record SYSTEM "../../config/janesml-delivery-norm-2.1.dtd">
<janes:record xmlns:janes="http://dtd.janes.com/2002/Content/" id="j1891356689831320" pubabbrev="JIQ" sysId="JIQ0105" urname="record">
<janes:metadata xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="j1891356689831320" urname="metadata" xlink:type="simple">
<dc:rights xmlns:dc="http://purl.org/dc/elements/1.1/">Copyright © IHS Global Limited, 2014</dc:rights>
<dc:date xmlns:dc="http://purl.org/dc/elements/1.1/" qualifier="pubDate">30000101</dc:date>
<dc:date xmlns:dc="http://purl.org/dc/elements/1.1/" qualifier="postDate">20140822</dc:date>
<janes:title urname="title">IHS Jane's Navigating the Emerging Markets</janes:title>
<janes:shortTitle urname="shortTitle">Canada</janes:shortTitle>
<janes:sect1 id="j18967561358768718373" urname="sect1">
<janes:para id="j18967561358768718388" urname="para"><janes:link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="jiq0105_a.pdf" qualifier="pdf" urname="link" xlink:type="simple"><janes:linkText urname="linkText">Please click here for the full PDF report.</janes:linkText></janes:link></janes:para>
</janes:sect1>
<janes:sect1 id="j26330201380885096083" updated="y" urname="sect1">
<janes:title urname="title">Military inventories</janes:title>
.......................
我收到错误“需要命名空间管理器或XsltContext。此查询具有前缀、变量或用户定义函数。”

有人能帮忙吗?

试试这个:

XmlDocument doc = new XmlDocument();
doc.Load(filepath);

var nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("janes", "http://dtd.janes.com/2002/Content/");

foreach (XmlNode node in doc.SelectNodes(@"//janes:link", nsmgr))
{
    //...
}

这就解释了为什么需要
XmlNamespaceManager

谢谢。如何在xml的xlink:href中检索值?您可以通过以下方式找到声明节点:
doc.ChildNodes.OfType()
,然后解析
xmlprocessinInstruction.value
属性,在您的情况下,该属性将返回type=“text/xsl”href=“../../config/janes deliver.xsl”另请参见此
XmlDocument doc = new XmlDocument();
doc.Load(filepath);

var nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("janes", "http://dtd.janes.com/2002/Content/");

foreach (XmlNode node in doc.SelectNodes(@"//janes:link", nsmgr))
{
    //...
}