2015-04-23 121 views
-2

我有以下字段中的數據串,我怎麼能使用jQuery只檢索一切從這個標籤「<?xml version="1.0"?>」開始這個標籤</soap:Envelope>jQuery的搜索開始標記和結束標記字符串

mylog.log:[qa53jdn575dganqmnen5a6irh4;OWI5MjFhMmI0NDk2NmYzNGNlNjcxOTg4NGRmMDExZGM=;1] INFO 2015-04-20 12:21:00,584 e.t.g.n.crm 
<?xml version="1.0"?> 
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 

    <soap:Body> 
     <webservice> 
      <sessiontoken>admin</sessiontoken> 
      <name>test</name> 
      <id>12345</id> 
      <parameters> 
       <parameter> 
        <key>e</key> 
        <value>test2</value> 
        <type>string</type> 
        <length>90</length> 
       </parameter> 
       <parameter> 
        <key>a</key> 
        <value>test1</value> 
        <type>string</type> 
        <length>50</length> 
       </parameter> 
       <parameter> 
        <key>n</key> 
        <value>12345</value> 
        <type>string</type> 
        <length>90</length> 
       </parameter> 
       <parameter> 
        <key>s</key> 
        <value>3</value> 
       </parameter> 
       <parameter> 
        <key>sf</key> 
        <value>test5</value> 
        <type>string</type> 
        <length>50</length> 
       </parameter> 
       <parameter> 
        <key>u</key> 
        <value>test6</value> 
        <type>string</type> 
        <length>50</length> 
       </parameter> 
      </parameters> 
     </webservice> 
    </soap:Body> 
</soap:Envelope> 

所以它會返回:

<?xml version="1.0"?> 
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
<soap:Body> 
    <webservice> 
     <sessiontoken>admin</sessiontoken> 
     <name>test</name> 
     <id>12345</id> 
     <parameters> 
      <parameter> 
       <key>e</key> 
       <value>test2</value> 
       <type>string</type> 
       <length>90</length> 
      </parameter> 
      <parameter> 
       <key>a</key> 
       <value>test1</value> 
       <type>string</type> 
       <length>50</length> 
      </parameter> 
      <parameter> 
       <key>n</key> 
       <value>12345</value> 
       <type>string</type> 
       <length>90</length> 
      </parameter> 
      <parameter> 
       <key>s</key> 
       <value>3</value> 
      </parameter> 
      <parameter> 
       <key>sf</key> 
       <value>test5</value> 
       <type>string</type> 
       <length>50</length> 
      </parameter> 
      <parameter> 
       <key>u</key> 
       <value>test6</value> 
       <type>string</type> 
       <length>50</length> 
      </parameter> 
     </parameters> 
    </webservice> 
</soap:Body> 

回答

0
var start = '<?xml version="1.0"?>'; 
var end = '</soap:Envelope>'; 

var text = 'mylog.log:[qa53jdn575dganqmnen5a6irh4;OWI5MjFhMmI0NDk2NmYzNGNlNjcxOTg4NGRmMDExZGM=;1] INFO 2015-04-20 12:21:00,584 e.t.g.n.crm <?xml version="1.0"?>...</soap:Envelope>'; 

var startIndex = text.indexOf(start); 
var endIndex = text.indexOf(end); 
var innerText = text.slice(startIndex, endIndex); 

Here is the fiddle

+0

說,文本變量中,你有多個啓動和結束標籤,h ow你會遍歷他們 –

+0

我會做一個正則表達式的標籤迭代通過所有標籤 – marcel

-1

你甚至不需要jQuery。您可以使用正則表達式來提取模式。

喜歡的東西

var yourString = "sdfsdfsdf ?xml version="1.0"?> </soap:Body>" 
var x = /<?xml(.+)</soap:Body>+/; 
var matches = x.match(yourString); 
+0

這是一條評論不是答案 – charlietfl

0
var longstring = 'mylog.log:[qa53jdn575dganqmnen5a6irh4;OWI5MjFhMmI0NDk2NmYzNGNlNjcxOTg4NGRmMDExZGM=;1] INFO 2015-04-20 12:21:00,584 e.t.g.n.crm <?xml version="1.0"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <webservice> <sessiontoken>admin</sessiontoken> <name>test</name> <id>12345</id> <parameters> <parameter> <key>e</key> <value>test2</value> <type>string</type> <length>90</length> </parameter> <parameter> <key>a</key> <value>test1</value> <type>string</type> <length>50</length> </parameter> <parameter> <key>n</key> <value>12345</value> <type>string</type> <length>90</length> </parameter> <parameter> <key>s</key> <value>3</value> </parameter> <parameter> <key>sf</key> <value>test5</value> <type>string</type> <length>50</length> </parameter> <parameter> <key>u</key> <value>test6</value> <type>string</type> <length>50</length> </parameter> </parameters> </webservice> </soap:Body> </soap:Envelope>' 

然後

var substring = longstring.substr(longstring.indexOf('<?xml'),longstring.length); 
+0

這將無法正常工作,如果有更多的文字背後'' – marcel

相關問題