C# 使用XML文档时指定名称空间
我正在尝试使用c#从xml文档获取输出。但我没有收到任何网格输出,也没有生成错误消息。我认为这应该是我在使用XmlnamespaceManager时犯的错误。我将显示我正在使用的编码。有人能帮我找出哪里出了问题吗。我随函附上了一个示例xml文件。提前谢谢C# 使用XML文档时指定名称空间,c#,xml,C#,Xml,我正在尝试使用c#从xml文档获取输出。但我没有收到任何网格输出,也没有生成错误消息。我认为这应该是我在使用XmlnamespaceManager时犯的错误。我将显示我正在使用的编码。有人能帮我找出哪里出了问题吗。我随函附上了一个示例xml文件。提前谢谢 public void InitializePatchListArray() { ArrayPatchList[0, 0] = "Installed Patch"; ArrayPatchList[0, 1] = "/compos
public void InitializePatchListArray()
{
ArrayPatchList[0, 0] = "Installed Patch";
ArrayPatchList[0, 1] = "/compositeReport/eisRecommendedPatchReport/@xmlns:ns2/ns2:recommendedPatchList/ns2:recommendedPatch/ns2:installedPatchId";
}
public void PopulatePatchList()
{
XmlDocument XmlDoc = new XmlDocument();
XmlDoc.Load(XMLFileLocation);
for (int i = 0; i <6; i++)
{
XmlNamespaceManager manager = new XmlNamespaceManager(XmlDoc.NameTable);
manager.AddNamespace("ns2", "http://webhome.central/xml/ns/bre/RuleService");
XmlNodeList XmlValueList = XmlDoc.SelectNodes(ArrayPatchList[i, 1].ToString(),manager);
}
}
public void InitializePatchListArray()
{
ArrayPatchList[0,0]=“已安装的修补程序”;
ArrayPatchList[0,1]=“/compositeReport/EISRommendedPatchReport/@xmlns:ns2/ns2:recommendedPatchList/ns2:RecommendedPatchId”;
}
public void PopulatePatchList()
{
XmlDocument XmlDoc=新的XmlDocument();
加载(XMLFileLocation);
对于(int i=0;i我认为使用序列化可能更优雅、更清晰。此外,如果您使用Visual Studio 2012,您可以自动从XML创建一个类,然后在序列化或反序列化的地方,以简单的方式指向名称空间非常确定这只是您的xpath-奇怪的@xmlns:ns2
looks不合适
public void InitializePatchListArray()
{
ArrayPatchList[0, 0] = "Installed Patch";
ArrayPatchList[0, 1] = "/compositeReport/eisRecommendedPatchReport/ns2:recommendedPatchList/ns2:recommendedPatch/ns2:installedPatchId";
}
应该可以正常工作。如果路径表达式中没有/@xmlns:ns2
部分,它可以工作吗?我不清楚您试图对该部分做什么。为什么要在循环中创建名称空间管理器是的,这就是问题所在。非常感谢