我有一些XML:
<?xml version="1.0" ?>
<Project ToolsVersion="4.0">
<PropertyGroup Condition="'$(key)'=='1111'">
<Key>Value</Key>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
注意:这不是我正在使用的实际XML,它只是更漂亮和更短,并演示了这个问题.
使用MSXML我可以查询节点:
IXMLDOMNode node = doc.selectSingleNode("//PropertyGroup/@Condition");
Run Code Online (Sandbox Code Playgroud)
它工作正常:
条件= " '$(密钥)' == '1111'"
实际上,我的XML包含一个名称空间声明:
的xmlns = "http://schemas.microsoft.com/developer/msbuild/2003"
制作实际的 XML文档:
<?xml version="1.0" ?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(key)'=='1111'">
<Key>Value</Key>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
现在我的查询:
IDOMNode node = doc.selectSingleNode("//PropertyGroup/@Condition");
Run Code Online (Sandbox Code Playgroud)
不返回匹配的节点.
如何使用MSXML查询默认命名空间?
注意:
我已经知道如何查询xml中的非默认命名空间 ; 你用:
doc.setProperty("SelectionNamespaces",
"xmlns="http://schemas.microsoft.com/developer/msbuild/2003");
Run Code Online (Sandbox Code Playgroud)我已经知道如何查询.NET中的默认命名空间.您使用命名空间管理器,为默认命名空间命名,然后使用该名称进行查询,然后您可以查询非默认命名空间,因为它不再是默认命名空间
我可以xmlns
从我收到的XML字符串中删除令人反感的文本,但我宁愿"以正确的方式去做"
如何使用MSXML 查询"默认"或"未命名"命名空间?
注意:实际上我正在使用SQL Server的XML ShowPlan输出:
<?xml version="1.0" …
Run Code Online (Sandbox Code Playgroud) 我使用xml为我的网站获取标签.
从数据库文件生成的xml如下所示
<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
xmlns:rs='urn:schemas-microsoft-com:rowset'
xmlns:z='#RowsetSchema'>
<s:Schema id='RowsetSchema'>
<s:ElementType name='row' content='eltOnly' rs:updatable='true'>
<s:AttributeType name='LABEL_KEY' rs:number='1' rs:nullable='true'>
<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='1000'/>
</s:AttributeType>
<s:AttributeType name='Label_LNG' rs:number='2' rs:writeunknown='true' rs:basecatalog='1500_GoldenFlour' rs:basetable='t_Label_SITE_PER_LNG'
rs:basecolumn='Label_LNG'>
<s:datatype dt:type='string' dt:maxLength='4000' rs:maybenull='false'/>
</s:AttributeType>
<s:AttributeType name='Label_ID' rs:number='3' rs:basecatalog='1500_GoldenFlour' rs:basetable='t_Label_SITE'
rs:basecolumn='Label_ID' rs:keycolumn='true' rs:hidden='true' rs:autoincrement='true'>
<s:datatype dt:type='int' dt:maxLength='4' rs:precision='10' rs:fixedlength='true' rs:maybenull='false'/>
</s:AttributeType>
<s:AttributeType name='c3' rs:name='Label_ID' rs:number='4' rs:writeunknown='true' rs:basecatalog='1500_GoldenFlour'
rs:basetable='t_Label_SITE_PER_LNG' rs:basecolumn='Label_ID' rs:keycolumn='true' rs:hidden='true'>
<s:datatype dt:type='int' dt:maxLength='4' rs:precision='10' rs:fixedlength='true' rs:maybenull='false'/>
</s:AttributeType>
<s:AttributeType name='Language_ID' rs:number='5' rs:writeunknown='true' rs:basecatalog='1500_GoldenFlour'
rs:basetable='t_Label_SITE_PER_LNG' rs:basecolumn='Language_ID' rs:keycolumn='true' rs:hidden='true'>
<s:datatype dt:type='int' dt:maxLength='4' rs:precision='10' …
Run Code Online (Sandbox Code Playgroud)