1

私は次のXMLを持っています

<DataTable xmlns = "http://schemas.datacontract.org/2004/07/System.Data">
    <xs:schema
        id = "NewDataSet"
        xmlns = ""
        xmlns:xs = "http://www.w3.org/2001/XMLSchema"
        xmlns:msdata = "urn:schemas-microsoft-com:xml-msdata">
        <xs:element
            name = "NewDataSet"
            msdata:IsDataSet = "true"
            msdata:MainDataTable = "Table"
            msdata:UseCurrentLocale = "true">
            <xs:complexType>
                <xs:choice minOccurs = "0" maxOccurs = "unbounded">
                    <xs:element name = "Table">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element
                                    name = "Id"
                                    type = "xs:int"
                                    minOccurs = "0"/>
                                <xs:element
                                    name = "Industry"
                                    type = "xs:string"
                                    minOccurs = "0"/>
                                <xs:element
                                    name = "ParentId"
                                    type = "xs:int"
                                    minOccurs = "0"/>
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                </xs:choice>
            </xs:complexType>
        </xs:element>
    </xs:schema>
    <diffgr:diffgram xmlns:msdata = "urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr = "urn:schemas-microsoft-com:xml-diffgram-v1">
        <NewDataSet xmlns = "">
            <Table diffgr:id = "Table1" msdata:rowOrder = "0">
                <Id>1592</Id>
                <Industry>Fortune 100</Industry>
                <ParentId>1810</ParentId>
            </Table>
            <Table diffgr:id = "Table2" msdata:rowOrder = "1">
                <Id>1601</Id>
                <Industry>Oil &amp; Gas Operations</Industry>
                <ParentId>0</ParentId>
            </Table>
             </NewDataSet>
    </diffgr:diffgram>
</DataTable>

parentID = 0 のノードが必要です

しかし、次のコードを使用すると:

 Dim parentNodes As XmlNodeList = xml_node.SelectNodes("/DataTable/diffgr:diffgram/NewDataSet/Table[ParentId=0]")

このエラーが発生します

Namespace Manager または XsltContext が必要です。このクエリには、プレフィックス、変数、またはユーザー定義関数があります。

解決策を提案してください

4

3 に答える 3

5

SelectNodes の前に以下を追加する必要があります

XmlNamespaceManager xmlnsManager = new XmlNamespaceManager(xmldoc.NameTable);
xmlnsManager.AddNamespace("bk", "urn:Books")
xmlnsManager.AddNamespace("pub", "urn:Publisher")
于 2012-10-18T05:10:57.613 に答える
1

示されている例では、次のようになります。

XmlNamespaceManager xmlnsManager = new XmlNamespaceManager(xmldoc.NameTable);
xmlnsManager.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema")
xmlnsManager.AddNamespace("msdata", "urn:schemas-microsoft-com:xml-msdata")
于 2013-12-12T17:18:29.143 に答える