相关疑难解决方法(0)

如何使用XPath忽略名称空间

我的目标是使用XPath从具有多个名称空间的多个xml文件中提取某些节点.只要我知道名称空间URI,一切正常.命名空间名称本身保持不变,但模式(XSD)有时是客户端生成的,即我不知道.然后我基本上有三种选择:

  1. 只使用一个模式用于命名空间,希望没有出错(我能确定吗?)

  2. 获取文档的子节点并查找带有命名空间URI的第一个节点,希望它在那里并只使用URI,希望它是正确的.可能由于多种原因而出错

  3. 不知何故告诉xpath:"看,我不关心命名空间,只需找到具有此名称的所有节点,我甚至可以告诉您命名空间的名称,而不是URI".这就是问题......

这不是许多"我的xpath表达不起作用的重复,因为我不知道命名空间感知" 这里这里发现的问题.我知道如何使用命名空间感知.只是没有如何摆脱它.

xml xpath namespaces xml-namespaces

96
推荐指数
3
解决办法
8万
查看次数

带有命名空间的XPath选择节点

它是一个.vbproj,看起来像这样

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <ProjectGuid>15a7ee82-9020-4fda-a7fb-85a61664692d</ProjectGuid>
Run Code Online (Sandbox Code Playgroud)

我想得到的只是ProjectGuid,但是当命名空间存在时它不起作用......

 Dim xmlDoc As New XmlDocument()
 Dim filePath As String = Path.Combine(mDirectory, name + "\" + name + ".vbproj")
 xmlDoc.Load(filePath)
 Dim value As Object = xmlDoc.SelectNodes("/Project/PropertyGroup/ProjectGuid")
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能解决这个问题?

xml vb.net xpath xml-namespaces

64
推荐指数
3
解决办法
6万
查看次数

与MySQL服务器通信的最佳方式是什么?

我将使用C/C++,并想知道与MySQL服务器通信的最佳方式.我应该使用服务器安装附带的库吗?它们是否是我应该考虑的优秀图书馆,而不是官方图书馆?

c c++ mysql sql database

8
推荐指数
1
解决办法
1316
查看次数

使用XPath从Atom XML文档中选择无节点?

我正在尝试以编程方式解析Atom提要.我将原子XML下载为字符串.我可以将XML加载到XmlDocument.但是,我无法使用XPath遍历文档.每当我尝试,我都会null.

我一直在使用这个Atom提要作为测试:http://steve-yegge.blogspot.com/feeds/posts/default

除了我使用" " 时,调用SelectSingleNode()总是返回.这是我现在正在尝试的:null/

using (WebClient wc = new WebClient())
{
    string xml = wc.DownloadString("http://steve-yegge.blogspot.com/feeds/posts/default");
    XmlNamespaceManager nsMngr = new XmlNamespaceManager(new NameTable());
    nsMngr.AddNamespace(string.Empty, "http://www.w3.org/2005/Atom");
    nsMngr.AddNamespace("app", "http://purl.org/atom/app#");
    XmlDocument atom = new XmlDocument();
    atom.LoadXml(xml);
    XmlNode node = atom.SelectSingleNode("//entry/link/app:edited", nsMngr);
}
Run Code Online (Sandbox Code Playgroud)

我以为它可能是因为我的XPath,所以我也尝试了一个简单的根节点查询,因为我知道root应该工作:

// I've tried both with & without the nsMngr declared above
XmlNode node = atom.SelectSingleNode("/feed");
Run Code Online (Sandbox Code Playgroud)

无论我做什么,似乎都无法选择任何东西.显然我错过了一些东西,我只是无法弄清楚是什么.为了使XPath能够在这个Atom提要上工作,我需要做些什么?

编辑

虽然这个问题有答案,但我发现这个问题几乎完全重复:SelectNodes不能处理stackoverflow feed

c# xml xpath xmldocument atom-feed

6
推荐指数
1
解决办法
7076
查看次数

标签 统计

xml ×3

xpath ×3

xml-namespaces ×2

atom-feed ×1

c ×1

c# ×1

c++ ×1

database ×1

mysql ×1

namespaces ×1

sql ×1

vb.net ×1

xmldocument ×1