Morpheus2100
09-10-2008, 11:48
Hallo Leute,
ich versuche eine XML Datei zu durchsuchen, auf einen bestimmten String.
Anhand dieses regulären Ausdrucks:
$tag = '/time=".*"/';
Jetzt wollte ich eigentlich erreichen, dass er mit immer den String "time="0"" in den array schreibt und das hald für jeden passenden wert. Sprich er sollte letztlich dann so aussehen:
Array
(
[0] => time="0"
[1] => time="2"
[2] => time="3"
)
Aber irgenwie gibt er es mir so aus????
Array
(
[0] => time="0">{sdfgsdfg}{sdfgsdfg} time="2">{asdf}{asdf} time="3">{asdf}{sdf}
Es wurden 3 Vorkommen von /time=".*"/ gefunden
Weis allerdings nicht wieso?
Könnt ihr mir da weiterhelfen? Irgendwie seh ich nicht was da falsch sein soll?
Danke für eure Hilfe.
hier das skript:
$tag = '/time=".*"/';
$inhalt = file_get_contents('test.xml');
preg_match_all($tag,$inhalt,$treffer);
echo "<pre>";
print_r($treffer[0]);
echo "</pre>";
echo '<p>Es wurden '.count($treffer[0]).' Vorkommen von '.$tag.' gefunden';
die XML DATEI:
<?xml version="1.0" encoding="utf-8" ?>
<DataItems>
<DataItem TYPEID="{sdfgsdfgsdfgsdfg}" now="10/6/2008 09:33:57" time="0">
<Event>
<InstanceID>{sdfgsdfg}</InstanceID>
<ProviderID>{sdfgsdfg}</ProviderID>
<Time TimeString="9/21/2008 22:53:01">39712.870162037</Time>
<SourceName>Security</SourceName>
<AgentComputer>sdfgs</AgentComputer>
<Computer>sdfg</Computer>
<Domain>sdfg</Domain>
<CategoryNumber>2</CategoryNumber>
<EventNumber>552</EventNumber>
<EventType>8</EventType>
<UserName>sdfgsdfg</UserName>
<UserDomain>NT AUTHORITY</UserDomain>
<Message><![CDATA[Logon attempt using explicit credentials:
Logged on user:
User Name: sdfgsdfg
Domain: sdfgs
Logon ID: (0x0,0x3E7)
Logon GUID: {sdfgsdfg}
User whose credentials were used:
Target User Name: sdfg
Target Domain: sdfgsdfg
Target Logon GUID: -
Target Server Name: sdfgsdfg
Target Server Info: sdfgssdfg
Caller Process ID: 4345345
Source Network Address: -
Source Port: -
]]></Message>
<Category><![CDATA[Logon/Logoff ]]></Category>
<MessageDLL>MsAuditE.dll</MessageDLL>
</Event>
</DataItem>
<DataItem TYPEID="{asdfasd}" now="10/6/2008 09:33:57" time="2">
<Event>
<InstanceID>{asdf}</InstanceID>
<ProviderID>{asdf}</ProviderID>
<Time TimeString="9/21/2008 22:58:02">39712.8736342593</Time>
<SourceName>Security</SourceName>
<AgentComputer>asdf</AgentComputer>
<Computer>asdf</Computer>
<Domain>asdfasdf</Domain>
<CategoryNumber>2</CategoryNumber>
<EventNumber>552</EventNumber>
<EventType>8</EventType>
<UserName>asdf</UserName>
<UserDomain>NT AUTHORITY</UserDomain>
<Message><![CDATA[Logon attempt using explicit credentials:
Logged on user:
User Name: asdf
Domain: asdf
Logon ID: (0x0,sdf)
Logon GUID: {asdf}
User whose credentials were used:
Target User Name: asdf
Target Domain: asdf
Target Logon GUID: -
Target Server Name: asdf
Target Server Info: sdf
Caller Process ID: 836
Source Network Address: -
Source Port: -
]]></Message>
<Category><![CDATA[Logon/Logoff ]]></Category>
<MessageDLL>MsAuditE.dll</MessageDLL>
</Event>
</DataItem>
<DataItem TYPEID="{38D93882-6459-11D2-A6E1-00A0C97148B7}" now="10/6/2008 09:33:58" time="3">
<Event>
<InstanceID>{asdf}</InstanceID>
<ProviderID>{sdf}</ProviderID>
<Time TimeString="9/26/2008 00:10:47">39716.9241666667</Time>
<SourceName>asdf</SourceName>
<AgentComputer>asdf</AgentComputer>
<Computer>asdf</Computer>
<Domain>asdf</Domain>
<CategoryNumber>2</CategoryNumber>
<EventNumber>22062</EventNumber>
<EventType>4</EventType>
<UserName>NETWORK SERVICE</UserName>
<UserDomain>NT AUTHORITY</UserDomain>
<Message><![CDATA[The Agent outgoing data processing has successfully resumed after being blocked.
Management Group: asdf ]]></Message>
<Category><![CDATA[MOM asdf ]]></Category>
<MessageDLL>MOMMsgs.dll</MessageDLL>
</Event>
</DataItem>
</DataItems>
ich versuche eine XML Datei zu durchsuchen, auf einen bestimmten String.
Anhand dieses regulären Ausdrucks:
$tag = '/time=".*"/';
Jetzt wollte ich eigentlich erreichen, dass er mit immer den String "time="0"" in den array schreibt und das hald für jeden passenden wert. Sprich er sollte letztlich dann so aussehen:
Array
(
[0] => time="0"
[1] => time="2"
[2] => time="3"
)
Aber irgenwie gibt er es mir so aus????
Array
(
[0] => time="0">{sdfgsdfg}{sdfgsdfg} time="2">{asdf}{asdf} time="3">{asdf}{sdf}
Es wurden 3 Vorkommen von /time=".*"/ gefunden
Weis allerdings nicht wieso?
Könnt ihr mir da weiterhelfen? Irgendwie seh ich nicht was da falsch sein soll?
Danke für eure Hilfe.
hier das skript:
$tag = '/time=".*"/';
$inhalt = file_get_contents('test.xml');
preg_match_all($tag,$inhalt,$treffer);
echo "<pre>";
print_r($treffer[0]);
echo "</pre>";
echo '<p>Es wurden '.count($treffer[0]).' Vorkommen von '.$tag.' gefunden';
die XML DATEI:
<?xml version="1.0" encoding="utf-8" ?>
<DataItems>
<DataItem TYPEID="{sdfgsdfgsdfgsdfg}" now="10/6/2008 09:33:57" time="0">
<Event>
<InstanceID>{sdfgsdfg}</InstanceID>
<ProviderID>{sdfgsdfg}</ProviderID>
<Time TimeString="9/21/2008 22:53:01">39712.870162037</Time>
<SourceName>Security</SourceName>
<AgentComputer>sdfgs</AgentComputer>
<Computer>sdfg</Computer>
<Domain>sdfg</Domain>
<CategoryNumber>2</CategoryNumber>
<EventNumber>552</EventNumber>
<EventType>8</EventType>
<UserName>sdfgsdfg</UserName>
<UserDomain>NT AUTHORITY</UserDomain>
<Message><![CDATA[Logon attempt using explicit credentials:
Logged on user:
User Name: sdfgsdfg
Domain: sdfgs
Logon ID: (0x0,0x3E7)
Logon GUID: {sdfgsdfg}
User whose credentials were used:
Target User Name: sdfg
Target Domain: sdfgsdfg
Target Logon GUID: -
Target Server Name: sdfgsdfg
Target Server Info: sdfgssdfg
Caller Process ID: 4345345
Source Network Address: -
Source Port: -
]]></Message>
<Category><![CDATA[Logon/Logoff ]]></Category>
<MessageDLL>MsAuditE.dll</MessageDLL>
</Event>
</DataItem>
<DataItem TYPEID="{asdfasd}" now="10/6/2008 09:33:57" time="2">
<Event>
<InstanceID>{asdf}</InstanceID>
<ProviderID>{asdf}</ProviderID>
<Time TimeString="9/21/2008 22:58:02">39712.8736342593</Time>
<SourceName>Security</SourceName>
<AgentComputer>asdf</AgentComputer>
<Computer>asdf</Computer>
<Domain>asdfasdf</Domain>
<CategoryNumber>2</CategoryNumber>
<EventNumber>552</EventNumber>
<EventType>8</EventType>
<UserName>asdf</UserName>
<UserDomain>NT AUTHORITY</UserDomain>
<Message><![CDATA[Logon attempt using explicit credentials:
Logged on user:
User Name: asdf
Domain: asdf
Logon ID: (0x0,sdf)
Logon GUID: {asdf}
User whose credentials were used:
Target User Name: asdf
Target Domain: asdf
Target Logon GUID: -
Target Server Name: asdf
Target Server Info: sdf
Caller Process ID: 836
Source Network Address: -
Source Port: -
]]></Message>
<Category><![CDATA[Logon/Logoff ]]></Category>
<MessageDLL>MsAuditE.dll</MessageDLL>
</Event>
</DataItem>
<DataItem TYPEID="{38D93882-6459-11D2-A6E1-00A0C97148B7}" now="10/6/2008 09:33:58" time="3">
<Event>
<InstanceID>{asdf}</InstanceID>
<ProviderID>{sdf}</ProviderID>
<Time TimeString="9/26/2008 00:10:47">39716.9241666667</Time>
<SourceName>asdf</SourceName>
<AgentComputer>asdf</AgentComputer>
<Computer>asdf</Computer>
<Domain>asdf</Domain>
<CategoryNumber>2</CategoryNumber>
<EventNumber>22062</EventNumber>
<EventType>4</EventType>
<UserName>NETWORK SERVICE</UserName>
<UserDomain>NT AUTHORITY</UserDomain>
<Message><![CDATA[The Agent outgoing data processing has successfully resumed after being blocked.
Management Group: asdf ]]></Message>
<Category><![CDATA[MOM asdf ]]></Category>
<MessageDLL>MOMMsgs.dll</MessageDLL>
</Event>
</DataItem>
</DataItems>
