我正在使用一个连续获取xml流的应用程序,然后使用它来处理一些信息。到目前为止,我只有一个名称空间用于所有流,我很容易做到
doc = new XPathDocument(ds + "/probe");
navigator = doc.CreateNavigator();
ns = new XmlNamespaceManager(navigator.NameTable);
ns.AddNamespace("m", "urn:namsp.org:namSpDev:1.1");
nodes = navigator.Select("//m:DataItem", ns);
while (nodes.MoveNext())
{
node = nodes.Current;
}
但现在我有一个问题。这是另一个具有命名空间
的流"urn:namsp.org:namSpDev:1.2"
所以在我的应用程序中,我必须检查流并查看它是哪个命名空间,然后我才能使用
添加应用程序名称空间 ns.AddNamespace("m", "urn:namsp.org:namSpDev:1.1");
我该怎么做?
我尝试转换doc.toString()并使用.contains()来检查是否有任何一个传递但是它不起作用。
答案 0 :(得分:1)
这些链接可能很有用:
Parsing XML with elements containing colon / namespace
How to Select XML Nodes with XML Namespaces from an XmlDocument?
答案 1 :(得分:0)
我最终做的是检索xml流并转换为字符串。然后使用
string.contains("xmlns")
我拆分了标签并使用标签标识符来获取名称空间的值。这对我有用,因为我使用的流中的名称空间没有太大区别。