Захватить содержимое xPath без окружающей разметки - PullRequest
0 голосов
/ 14 мая 2011

Как вы захватываете содержимое xPath, не копируя окружающую метку?

<div id="node-123" class="clearfix">
                    <div class="content">
                        <div class="body">
                            <p><img src="/images/image.jpg"/></p>
                            <p>Some content ....</p>
                        </div>    
                    </div>
                </div>

Если я использовал //div[@id='node-123']/div/div, я все равно получаю окружение <div class="body">, которое не ожидается.

Мне нужно содержимое <div class="body">, за исключением этой <div class="body"> разметки, но с сохранением других разметок внутри содержимого, p, img и т. Д.

Я пытался использовать подстановочный знак: //div[@id='node-123']/div/div/*, ноэто только выборка первого p, где p может быть два или много.Использование node () ничего не дает.

Любая подсказка будет очень признательна.

Спасибо

Ответы [ 2 ]

2 голосов
/ 14 мая 2011

Если бы я использовал //div[@id='node-123']/div/div, я по-прежнему окружать <div class="body">, что не ожидается.

Мне нужно содержимое <div class="body">, исключая эту разметку <div class="body">, но резервируя другие наценки внутри контента, p, img и т. Д.

Используйте

//div[@id='node-123']/div/div/node()

Это выбирает все узлы (элементы, текстовые узлы, инструкции обработки и узлы комментариев), которые являются дочерними для любого элемента div, который является дочерним для любого элемента div, который является дочерним для любого div элемент в документе, так что значение его атрибута id равно 'node-123'.

Предупреждение : Рекомендуется не использовать псевдооператор // , если структура XML-документа статически известна. Использование псевдооператора // чаще всего приводит к очень низкой производительности, вызывая полный обход дерева.

0 голосов
/ 14 мая 2011

Проблема в том, что тег img не определен в оригинальной статье: <img src="/images/image.jpg">, а не <img src="/images/image.jpg"/>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...