Member 13882901 Ответов: 0

Как отобразить конкретный элемент на основе атрибута с помощью xpath?


Для xml-файла (1.xml)

<?xml version="1.0" encoding="UTF-8"?>
<xsl:версия таблицы стилей="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<traceCollecFile xmlns="http://www.3gpp.org/ftp/specs/archive/32_series/32.423#traceData" >
&ЛТ;fileFormatVersion fileHeader="32.423 В10.0" имя_вендора="cDOT на группы" и GT;
<fileSender elementDn="DC=a1.companycdot.com,подсеть=1, ManagedElement=MME-1_1_1" elementType="MME" />

<traceRecSession dnPrefix="DC=a1.companycdot.com,подсеть=1" traceRecSessionRef="992" stime="2018-06-08T13:47:12-05:30" >
<ue idType="IMSI" idValue="311480000002255" />
&ЛТ;функция МСГ="С6" имя="обновление местоположения ответа" changeTime="0.000000" vendorSpecific="ложно" и GT;
<ie name="RESULT_CODE">2001

<traceSessionRef >
<mcc>311
<mnc>480
<trace_id>8323073
<traceRecSession dnPrefix="DC=a1.companycdot.com,подсеть=1" traceRecSessionRef="992" stime="2018-06-08T13:47:12-05:30" >
<ue idType="IMSI" idValue="311480000002255" />
&ЛТ;функция МСГ="С11" имя="создать сеанс запросу" changeTime="0.000000" vendorSpecific="ложно" и GT;
<ie name="GTP_V2_IE_IMSI">311480000002255
<ie name="GTP_V2_IE_RAT_TYPE">6
<ie name="GTP_V2_IE_MSISDN">913114802255
<ieGroup name="GTP_V2_IE_FQ_CSID" >
<ie name="экземпляр">0
<ie name="GTP_V2_IE_FQ_CSID">1

<ieGroup name="GTP_V2_IE_BEARER_CNTXT" >
<ie name="экземпляр">0
<ie name="GTP_V2_IE_EBI">5
<ieGroup name="GTP_V2_IE_BEARER_QOS" >
<ie name="ARP">92
<ie name="QCI">9
<ie name="UPLINK_MBR">0
<ie name="DOWNLINK_MBR">0
<ie name="UPLINK_GBR">0
<ie name="DOWNLINK_GBR">0


<ie name="GTP_V2_IE_APN">vzwinternet.mnc480.mcc311.gprs

<traceSessionRef >
<mcc>311
<mnc>480
<trace_id>8323073
Я хочу извлечь только значения MSISDN.

Что я уже пробовал:

<?php
$doc = новый DOMDocument();
$док-&ГТ;нагрузки('tce_sgw.xml');
$xpath = новый DOMXPath($doc);
// Если вы хотите прочитать точный атрибут
//Выбирает все элементы ie, имеющие атрибут "name" со значением "GTP_V2_IE_MSISDN".
$ienameAttribute = $xpath->query("//traceCollecFile/traceRecSession/msg/ie[@name='GTP_V2_IE_MSISDN']");
if ($ienameAttribute->length > 0) {
echo $ienameAttribute->item(0)->value;
}

RedDk

Здесь есть 33 открытых тега ... "XML". Я бы предложил найти праймер использования "XPath", сделать некоторые примеры примеров, найденных в/at MSDN (сети разработчиков microsoft), а затем попытаться получить jiggy с помощью какого-нибудь монолитного приложения dev, чтобы проверить это ... "XML".

0 Ответов