Я пытаюсь найти элемент с помощью contains.The проблема Если строка содержит одну цитату или двойную кавычку, ее трудно получить. Я использую этот xpath для соответствия непосредственно первому элементу. Есть ли лучший способ реализовать, не используя здесь выражение 'и'?Xpath using содержит
Xpath Используется: -
.//*[local-name()='GEOGRAPHY_TITLE'][contains(.,"APAC > Andaman Islands > test&'<,")and contains(., '"123')]
XML Используется: -
<MST>
<MST_GEOGRAPHY >
<GEOGRAPHY_TITLE>APAC > Andaman Islands > test&'<,\"123</GEOGRAPHY_TITLE>
<GEOGRAPHY_ID>5a7a24ec-93ff-8be6-7ef9-fa021500df0e</GEOGRAPHY_ID>
<TENANT_ID>{0559cdcb-c63b-4c81-be91-b78e831bf5a5}</TENANT_ID>
<ACTIVE>1</ACTIVE>
</MST_GEOGRAPHY>
<MST_GEOGRAPHY >
<GEOGRAPHY_TITLE>APAC > Andaman Islands > test\"123&'<,\"123</GEOGRAPHY_TITLE>
<GEOGRAPHY_ID>5a7a24ec-93ff-8be6-7ef9-fa021500df0e</GEOGRAPHY_ID>
<TENANT_ID>{0559cdcb-c63b-4c81-be91-b78e831bf5a5}</TENANT_ID>
<ACTIVE>1</ACTIVE>
</MST_GEOGRAPHY>
<MST_GEOGRAPHY >
<GEOGRAPHY_TITLE>hi</GEOGRAPHY_TITLE>
<GEOGRAPHY_ID>5a7a24ec-93ff-8be6-7ef9-fa021500df0e</GEOGRAPHY_ID>
<TENANT_ID>{0559cdcb-c63b-4c81-be91-b78e831bf5a5}</TENANT_ID>
<ACTIVE>1</ACTIVE>
</MST_GEOGRAPHY>
</MST>
Что не так с использованием 'и'? Кроме того, подумайте о том, что делает каждую запись уникальной; является 'GEOGRAPHY_ID' каждого элемента' MST_GEOGRAPHY' уникальным (это должно быть, если это истинный идентификатор)? –
Нет причин избежать цитаты в данных. Если я уйду из амперсанда в xpath, это сработает для меня. Если вы хотите избежать «и», вы можете использовать './/* [local-name() = 'GEOGRAPHY_TITLE'] [. eq "APAC> Андаманские острова> тест & '<, " 123"] 'или' .//*[local-name()='GEOGRAPHY_TITLE'][contains(.,"APAC> Андаманские острова> тест &' <, " 123 ")]' –
Используете ли вы XPath 2.0 или XPathNavigator (вопрос отмечен обоими)? XPathNavigator поддерживает только XPath 1.0. – JLRishe