且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

XmlDocument.LoadXml和命名空间

更新时间:2023-11-24 16:13:34

David Thielen写道:
David Thielen wrote:
有一次我已经将一个xml文件加载到DOM中,有没有办法获得xml文件中的任何名称空间声明?或者那些刚被丢弃的人随着DOM的填充而被丢弃?
Once I have loaded an xml file into a DOM, is there any way to then get any
namespace declarations that were in the xml file? Or are those just discarded
as the DOM is populated?




当然不是。您可以使用

doc.SelectNodes(" // namespace :: *")选择名称空间声明。


-

Oleg Tkachenko [XML MVP,MCAD]
http://www.xmllab.net
http://blog.tkachenko.com


嗨;


这种方式有效。我在文件的标题中声明了3个名称空间。

SelectNodes(" // namespace :: *")给了我36个节点。我没有检查每一个

但它似乎是一遍又一遍地重复的3个命名空间。


任何想法为什么我没有得到只是3 ?


-

谢谢 - 戴夫

" Oleg Tkachenko [MVP]"写道:
Hi;

This sort-of worked. I have 3 namespaces declared in the header of the file.
The SelectNodes("//namespace::*") gave me 36 nodes. I did not check each one
but it appeared to be the 3 namespaces repeated over and over.

Any idea why I didn''t get just 3?

--
thanks - dave
"Oleg Tkachenko [MVP]" wrote:
David Thielen写道:
David Thielen wrote:
一旦我将一个xml文件加载到DOM中,有什么方法可以获得任何
xml文件中的命名空间声明?或者那些刚被丢弃的人随着DOM的填充而被丢弃?
Once I have loaded an xml file into a DOM, is there any way to then get any
namespace declarations that were in the xml file? Or are those just discarded
as the DOM is populated?



当然不是。您可以使用
doc.SelectNodes(" // namespace :: *")选择名称空间声明。

-
Oleg Tkachenko [XML MVP,MCAD]
http://www.xmllab.net
http://blog.tkachenko.com



对于xml:

< root xmlns =" http://www.test.org" xmlns:sns =" http://www.test.org/sub"

xmlns:mns =" http://www.test.org/mini">

< data>

< items>

< item id =" 1">

< sns :subItem sid =" 11"> dave< / sns:subItem>

< sns:subItem sid =" 12"> thielen< / sns:subItem>

< / item>

< item id =" 2">

< sns:subItem sid =" 21"> shirley< / sns:subItem>

< / item>

< / items>

< mns:more> dave thielen< / mns :更多>

< / data>

< / root>


返回的节点是:

mns = http://www.test.org/mini

sns = http://www.test.org/sub

{default} = http://www.test.org

xml = http://www.w3.org/XML/1998/namespace

mns = http:// www。 test.org/mini

sns = http://www.test.org/sub

{默认} = http://www.test.org

xml = h ttp://www.w3.org/XML/1998/namespace

mns = http://www.test.org/mini

sns = http:// www.test.org/sub

{默认} = http://www.test.org

xml = http://www.w3.org/XML/ 1998 /名称空间

mns = http://www.test.org/mini

sns = http://www.test.org/sub

{默认} = http://www.test.org

xml = http://www.w3.org/XML/1998/namespace

mns = http://www.test.org/mini

sns = http://www.test.org/sub

{default} = http:// www .test.org

xml = http://www.w3.org/XML/1998/namespace

mns = http://www.test.org/mini

sns = http://www.test.org/sub

{默认} = http://www.test.org

xml = http://www.w3.org/XML/1998/namespace

mns = http://www.test.org/mini

sns = http: //www.test.org/sub

{默认} = http://www.test.org

xml = http://www.w3.org/ XML / 1998 / namespace

mns = http://www.test.org/mini

sns = http://www.test.org/sub

{默认} = http ://www.test.org

xml = http://www.w3.org/XML/1998/namespace

mns = http://www.test .org / mini

sns = http://www.test.org/sub

{默认} = http://www.test.org

xml = http://www.w3.org/XML/1998/namespace


??? - 谢谢 - 戴夫
For the xml:
<root xmlns="http://www.test.org" xmlns:sns="http://www.test.org/sub"
xmlns:mns="http://www.test.org/mini">
<data>
<items>
<item id="1">
<sns:subItem sid="11">dave</sns:subItem>
<sns:subItem sid="12">thielen</sns:subItem>
</item>
<item id="2">
<sns:subItem sid="21">shirley</sns:subItem>
</item>
</items>
<mns:more>dave thielen</mns:more>
</data>
</root>

The nodes returned are:
mns=http://www.test.org/mini
sns=http://www.test.org/sub
{default}=http://www.test.org
xml=http://www.w3.org/XML/1998/namespace
mns=http://www.test.org/mini
sns=http://www.test.org/sub
{default}=http://www.test.org
xml=http://www.w3.org/XML/1998/namespace
mns=http://www.test.org/mini
sns=http://www.test.org/sub
{default}=http://www.test.org
xml=http://www.w3.org/XML/1998/namespace
mns=http://www.test.org/mini
sns=http://www.test.org/sub
{default}=http://www.test.org
xml=http://www.w3.org/XML/1998/namespace
mns=http://www.test.org/mini
sns=http://www.test.org/sub
{default}=http://www.test.org
xml=http://www.w3.org/XML/1998/namespace
mns=http://www.test.org/mini
sns=http://www.test.org/sub
{default}=http://www.test.org
xml=http://www.w3.org/XML/1998/namespace
mns=http://www.test.org/mini
sns=http://www.test.org/sub
{default}=http://www.test.org
xml=http://www.w3.org/XML/1998/namespace
mns=http://www.test.org/mini
sns=http://www.test.org/sub
{default}=http://www.test.org
xml=http://www.w3.org/XML/1998/namespace
mns=http://www.test.org/mini
sns=http://www.test.org/sub
{default}=http://www.test.org
xml=http://www.w3.org/XML/1998/namespace

??? - thanks - dave