Mam dokument XML, który ładuję i próbuję przeszukać XPath. Węzłem głównym w tym pliku jest <t:Transmission xmlns:t='urn:InboundShipment'>
, a koniec pliku jest poprawnie zamknięty przy użyciu </t:Transmission>
.Parsowanie XML: dwukropek w moim elemencie powoduje, że XPath go ominie
Moim problemem jest to, że nie mogę chodzić po drzewie bez użycia osi potomnej. Innymi słowy, mogę zrobić: SelectSingleNode("//TransactionHeader[SHIPPERSTATE='CA']")
i uzyskać węzeł w zamian. Ale nie mogę zrobić, co powinno być równoważne: SelectSingleNode("/Transmission/TransmissionBody/Transaction/TransactionHeader[SHIPPERSTATE='CA']")
Po usunięciu t:
mogę wykonać wyszukiwanie XPath na /Transmission
i pobrać cały plik. Z t:
tam po prostu dostaję zero. Lub jeśli próbuję SelectSingleNode("t:Transmission")
pojawia się błąd z moją instrukcją XPath.
Generalnie nie muszę wysyłać zapytania do elementu głównego, więc powinienem być w stanie zrobić tylko przy użyciu osi potomnej dla moich wyszukiwań. Ale XML wygląda dla mnie ważnie i dlatego chciałbym się dowiedzieć, jak rozwiązać ten problem. Plus nie chcę prosić klienta o usunięcie "t:" tylko dlatego, że nie wiem jak sobie z tym poradzić.
Niesamowite, dzięki James! Świetne referencje też. –