簡體   English   中英

使用C#中的Regex.Matches解析XML字符串

[英]Parse XML String with Regex.Matches in C#

我有一個非常奇怪的問題,目前無法解決。

我嘗試使用Regex.Matches解析xml字符串,以獲取具有特定名稱的所有xml節點。

它一直有效到現在。

我有一個xml輸入字符串,其中包含恰好30個名為“行”的xml節點

由於某些怪異的原因,我的代碼返回了26個節點。.我實際上不知道為什么缺少4個節點。

這是我的代碼來解析數據:

public static List<String> getXMLNodeContentFromSQLQueryString(String queryString, String rowName)
    {
        List<String> returnVal = new List<string>();
        MatchCollection matchCollection = Regex.Matches(queryString, "<" + rowName + ">.*?</" + rowName + ">");
        foreach (Match match in matchCollection)
        {
            String splitted = match.ToString();
            splitted = splitted.Replace("<" + rowName + ">", "").Replace("</" + rowName + ">", "");
            returnVal.Add(splitted);
        }
        if (returnVal.Count == 0)
            returnVal.Add("");
        return returnVal;
    }

繼承人的XML字符串

"<?xml version=\"1.0\"?>\r\n<EADATA version=\"1.0\" exporter=\"Enterprise Architect\">\r\n\t<Dataset_0><Data><Row><OperationID>5</OperationID><Object_ID>135</Object_ID><Name>applyForward</Name><Scope>Public</Scope><Type>void</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>1</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>0</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{84137450-8053-46eb-ACD5-574741233ABC}</ea_guid></Row><Row><OperationID>6</OperationID><Object_ID>135</Object_ID><Name>applyBackward</Name><Scope>Public</Scope><Type>void</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>0</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>0</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{416E8BF3-9D6D-4fb3-8C32-05E4E6B8EDDD}</ea_guid></Row><Row><OperationID>12</OperationID><Object_ID>240</Object_ID><Name>copy</Name><Scope>Public</Scope><Type>EObject</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>0</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>0</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{E57518A9-9A91-4b0f-9311-F7AF3177F809}</ea_guid></Row><Row><OperationID>13</OperationID><Object_ID>240</Object_ID><Name>embedSDMInEAnnotation</Name><Scope>Public</Scope><Type>void</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>1</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>0</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{44F4A863-86CB-4889-B179-3F4BA1F68D8D}</ea_guid></Row><Row><OperationID>18</OperationID><Object_ID>273</Object_ID><Name>configure</Name><Scope>Public</Scope><Type>EBoolean</Type><ReturnArray>0</ReturnArray><Concurrency>Sequential</Concurrency><Notes>0. Integrator creates GraphTriple and sets roots\r\n1. Adds the given graph triple to the translator\r\n2. Iterates over composite structure of input model and fills unprocessedNodes and unprocessedEdges (other collections are initially empty although this could be different in incremental mode)</Notes><Synchronized>0</Synchronized><Pos>0</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>0</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{B22FDBFE-C033-4ff5-81FB-2ED133A55F62}</ea_guid></Row><Row><OperationID>19</OperationID><Object_ID>273</Object_ID><Name>translate</Name><Scope>Public</Scope><Type>TranslationResult</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>1</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>136</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{2DFA0837-F09F-40f5-A4BD-CD3857D2D712}</ea_guid></Row><Row><OperationID>21</OperationID><Object_ID>165</Object_ID><Name>determineLNCC</Name><Scope>Public</Scope><Type>void</Type><ReturnArray>0</ReturnArray><Concurrency>Sequential</Concurrency><Notes>Iterate through all rules of the given TGG and consider edges in the following way:\r\nforall edges e in rule r\r\n-&amp;gt; s(e) or t(e) are context elements\r\n-&amp;gt; e is set to create\r\n=&amp;gt; add quadruple containing the types of s(e), t(e), the name of e and the encoded equivalent if s, t or both are context elements.</Notes><Synchronized>0</Synchronized><Pos>0</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>0</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{0E021F1A-5CE7-4f68-B737-D2C11AA200ED}</ea_guid></Row><Row><OperationID>22</OperationID><Object_ID>273</Object_ID><Name>determineCandidateRulesForNode</Name><Scope>Public</Scope><Type>CandidateRules</Type><ReturnArray>0</ReturnArray><Concurrency>Sequential</Concurrency><Notes>1. Look up in table for operational rules that translate type(node).</Notes><Synchronized>0</Synchronized><Pos>2</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>352</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{7BE07512-219E-40f3-BB81-B1C5B5B15211}</ea_guid></Row><Row><OperationID>24</OperationID><Object_ID>135</Object_ID><Name>isAppropriate</Name><Scope>Public</Scope><Type>EOperation</Type><ReturnArray>0</ReturnArray><Concurrency>Sequential</Concurrency><Notes>1. check if core match exists in input graph starting from given entry node\r\n2. check if DEC is satisfied (call external method)\r\n3. process context on demand\r\n4. return the corresponding perform* EOperation or null if check failed.</Notes><Synchronized>0</Synchronized><Pos>2</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>183</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{EC74C95A-0D42-4b5d-98C6-0E3273664A8D}</ea_guid></Row><Row><OperationID>25</OperationID><Object_ID>273</Object_ID><Name>updateProcessedSets</Name><Scope>Public</Scope><Type>void</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Notes>1. Determines the corresponding graph elements to the translated objects in the given ruleResult (also edges for translated references!!!)\r\n2. Adds these graph elements to the set of processed elements\r\n3. Be careful not to manipulate the set of unprocessed elements!</Notes><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>3</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>0</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{CE58DEC9-E683-4d49-8A92-986698AD7ABD}</ea_guid></Row><Row><OperationID>26</OperationID><Object_ID>165</Object_ID><Name>buildCandidateRulesLookupTable</Name><Scope>Public</Scope><Type>void</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>1</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>0</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{BC2520AA-DB89-4280-ACE6-F6A8711EDC61}</ea_guid></Row><Row><OperationID>28</OperationID><Object_ID>273</Object_ID><Name>determineCandidateRulesForEdge</Name><Scope>Public</Scope><Type>CandidateRules</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>4</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>352</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{1070078F-FF2E-49ca-9432-2D50C026A0D6}</ea_guid></Row><Row><OperationID>29</OperationID><Object_ID>288</Object_ID><Name>eInvoke</Name><Scope>Public</Scope><Type>java.lang.Object</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>0</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>0</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{A1D00185-AE82-493e-AAAC-E916D2DD98D3}</ea_guid></Row><Row><OperationID>38</OperationID><Object_ID>240</Object_ID><Name>CREATE</Name><Scope>Public</Scope><Type>BindingOperator</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>4</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>115</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{42E99307-46D4-444b-886B-FBA399DF29F6}</ea_guid></Row><Row><OperationID>39</OperationID><Object_ID>240</Object_ID><Name>BACKWARD</Name><Scope>Public</Scope><Type>ApplicationTypes</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>5</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>272</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{D0F76449-7205-4f9c-A03D-C68F72A669C4}</ea_guid></Row><Row><OperationID>27</OperationID><Object_ID>165</Object_ID><Name>determineEntryNode</Name><Scope>Private</Scope><Type>TGGObjectVariable</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>2</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>128</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{12E442A3-491E-4dc2-9171-728084C3746F}</ea_guid></Row><Row><OperationID>30</OperationID><Object_ID>434</Object_ID><Name>invokeOperationWithSingleArg</Name><Scope>Public</Scope><Type>EObject</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>0</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>288</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{DDE51358-F82B-4100-A5D1-12154D533B41}</ea_guid></Row><Row><OperationID>31</OperationID><Object_ID>165</Object_ID><Name>deriveOperationalRules</Name><Scope>Public</Scope><Type>void</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>3</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>0</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{30584C3D-773E-4256-BBE9-4FD226E45814}</ea_guid></Row><Row><OperationID>32</OperationID><Object_ID>165</Object_ID><Name>createOperationalRules</Name><Scope>Private</Scope><Type>void</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>4</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>0</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{ED7EF05C-D74B-4a0f-897D-DB7612AC5AEB}</ea_guid></Row><Row><OperationID>35</OperationID><Object_ID>240</Object_ID><Name>determineOperationSignature</Name><Scope>Public</Scope><Type>EString</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>2</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>0</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{999096A0-B224-4446-A8D5-CB581BA2DD20}</ea_guid></Row><Row><OperationID>36</OperationID><Object_ID>165</Object_ID><Name>createPerformOperation</Name><Scope>Private</Scope><Type>Activity</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>5</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>95</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{3414F021-9221-4be2-A133-28E6DAA25ADD}</ea_guid></Row><Row><OperationID>37</OperationID><Object_ID>240</Object_ID><Name>convertDirectionToAppropriateDomain</Name><Scope>Public</Scope><Type>DomainType</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>3</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>198</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{E83E8FA4-1802-4a2a-AF6B-81D5E4BAB83A}</ea_guid></Row><Row><OperationID>40</OperationID><Object_ID>240</Object_ID><Name>FORWARD</Name><Scope>Public</Scope><Type>ApplicationTypes</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>6</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>272</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{403AA3D8-A275-4763-BB64-8BDF6425EA18}</ea_guid></Row><Row><OperationID>42</OperationID><Object_ID>165</Object_ID><Name>createIsAppropriateOperation</Name><Scope>Public</Scope><Type>Activity</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>6</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>95</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{15A6B03B-DDE5-479d-A3DE-FA2A05970DE1}</ea_guid></Row><Row><OperationID>43</OperationID><Object_ID>240</Object_ID><Name>CHECK_ONLY</Name><Scope>Public</Scope><Type>BindingOperator</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>7</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>115</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{16268928-5197-4269-8A3D-5251DD8AA7A6}</ea_guid></Row><Row><OperationID>44</OperationID><Object_ID>240</Object_ID><Name>BOUND</Name><Scope>Public</Scope><Type>BindingState</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>8</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>113</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{5529869A-FE95-489e-BB61-BB1F46EBAB87}</ea_guid></Row><Row><OperationID>45</OperationID><Object_ID>240</Object_ID><Name>UNBOUND</Name><Scope>Public</Scope><Type>BindingState</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>9</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>113</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{A3CFAA93-BE84-4602-BAC7-AF42DE44F4AE}</ea_guid></Row><Row><OperationID>46</OperationID><Object_ID>240</Object_ID><Name>SUCCESS</Name><Scope>Public</Scope><Type>EdgeGuard</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>10</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>104</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{41D81F5E-E224-4171-A7B5-08BAD5D650E3}</ea_guid></Row><Row><OperationID>47</OperationID><Object_ID>240</Object_ID><Name>FAILURE</Name><Scope>Public</Scope><Type>EdgeGuard</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>11</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>104</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{8D2A6AF2-70C9-4d51-ADF2-CBD72BE0D8C1}</ea_guid></Row><Row><OperationID>48</OperationID><Object_ID>240</Object_ID><Name>MANDATORY</Name><Scope>Public</Scope><Type>BindingSemantics</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>12</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>114</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{ADB4946B-AAA6-4ead-97DE-476DE4406DC1}</ea_guid></Row></Data></Dataset_0></EADATA>\r\n"

和想法?

謝謝


解決了!!!!!!!!!!!!!!!

仍然不知道問題出在哪里,但是使用XMLReader解決了問題。謝謝您的建議,這里是有興趣的人的代碼。

公共靜態列表getXMLNodeContentFromSQLQueryString(String queryString,String rowName){List returnVal = new List();

    // load contents of file
    TextReader textReader = new StringReader(queryString);

    // process file contents
    XmlDocument domDoc = new XmlDocument();
    domDoc.Load(textReader);

    XmlNodeList nodeList = domDoc.GetElementsByTagName(rowName);
    foreach (XmlNode node in nodeList)
    {
        returnVal.Add(node.InnerXml);    
    }
    return returnVal;
}

在每個未返回的行(OperationID為18、21、24和25的行)中,文本中存在一個或多個“ \\ r \\ n”,這導致正則表達式不匹配。 刪除它們或暫時替換它們將返回所有30行。

但是,現在使用XML解析器絕對是正確的方法。

這可能會幫助某人。 使用Linq到XML

string xmlString = "<?xml version=\"1.0\"?>\r\n<EADATA version=\"1.0\" exporter=\"Enterprise Architect\">\r\n\t<Dataset_0><Data><Row><OperationID>5</OperationID><Object_ID>135</Object_ID><Name>applyForward</Name><Scope>Public</Scope><Type>void</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>1</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>0</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{84137450-8053-46eb-ACD5-574741233ABC}</ea_guid></Row><Row><OperationID>6</OperationID><Object_ID>135</Object_ID><Name>applyBackward</Name><Scope>Public</Scope><Type>void</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>0</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>0</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{416E8BF3-9D6D-4fb3-8C32-05E4E6B8EDDD}</ea_guid></Row><Row><OperationID>12</OperationID><Object_ID>240</Object_ID><Name>copy</Name><Scope>Public</Scope><Type>EObject</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>0</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>0</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{E57518A9-9A91-4b0f-9311-F7AF3177F809}</ea_guid></Row><Row><OperationID>13</OperationID><Object_ID>240</Object_ID><Name>embedSDMInEAnnotation</Name><Scope>Public</Scope><Type>void</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>1</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>0</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{44F4A863-86CB-4889-B179-3F4BA1F68D8D}</ea_guid></Row><Row><OperationID>18</OperationID><Object_ID>273</Object_ID><Name>configure</Name><Scope>Public</Scope><Type>EBoolean</Type><ReturnArray>0</ReturnArray><Concurrency>Sequential</Concurrency><Notes>0. Integrator creates GraphTriple and sets roots\r\n1. Adds the given graph triple to the translator\r\n2. Iterates over composite structure of input model and fills unprocessedNodes and unprocessedEdges (other collections are initially empty although this could be different in incremental mode)</Notes><Synchronized>0</Synchronized><Pos>0</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>0</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{B22FDBFE-C033-4ff5-81FB-2ED133A55F62}</ea_guid></Row><Row><OperationID>19</OperationID><Object_ID>273</Object_ID><Name>translate</Name><Scope>Public</Scope><Type>TranslationResult</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>1</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>136</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{2DFA0837-F09F-40f5-A4BD-CD3857D2D712}</ea_guid></Row><Row><OperationID>21</OperationID><Object_ID>165</Object_ID><Name>determineLNCC</Name><Scope>Public</Scope><Type>void</Type><ReturnArray>0</ReturnArray><Concurrency>Sequential</Concurrency><Notes>Iterate through all rules of the given TGG and consider edges in the following way:\r\nforall edges e in rule r\r\n-&amp;gt; s(e) or t(e) are context elements\r\n-&amp;gt; e is set to create\r\n=&amp;gt; add quadruple containing the types of s(e), t(e), the name of e and the encoded equivalent if s, t or both are context elements.</Notes><Synchronized>0</Synchronized><Pos>0</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>0</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{0E021F1A-5CE7-4f68-B737-D2C11AA200ED}</ea_guid></Row><Row><OperationID>22</OperationID><Object_ID>273</Object_ID><Name>determineCandidateRulesForNode</Name><Scope>Public</Scope><Type>CandidateRules</Type><ReturnArray>0</ReturnArray><Concurrency>Sequential</Concurrency><Notes>1. Look up in table for operational rules that translate type(node).</Notes><Synchronized>0</Synchronized><Pos>2</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>352</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{7BE07512-219E-40f3-BB81-B1C5B5B15211}</ea_guid></Row><Row><OperationID>24</OperationID><Object_ID>135</Object_ID><Name>isAppropriate</Name><Scope>Public</Scope><Type>EOperation</Type><ReturnArray>0</ReturnArray><Concurrency>Sequential</Concurrency><Notes>1. check if core match exists in input graph starting from given entry node\r\n2. check if DEC is satisfied (call external method)\r\n3. process context on demand\r\n4. return the corresponding perform* EOperation or null if check failed.</Notes><Synchronized>0</Synchronized><Pos>2</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>183</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{EC74C95A-0D42-4b5d-98C6-0E3273664A8D}</ea_guid></Row><Row><OperationID>25</OperationID><Object_ID>273</Object_ID><Name>updateProcessedSets</Name><Scope>Public</Scope><Type>void</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Notes>1. Determines the corresponding graph elements to the translated objects in the given ruleResult (also edges for translated references!!!)\r\n2. Adds these graph elements to the set of processed elements\r\n3. Be careful not to manipulate the set of unprocessed elements!</Notes><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>3</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>0</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{CE58DEC9-E683-4d49-8A92-986698AD7ABD}</ea_guid></Row><Row><OperationID>26</OperationID><Object_ID>165</Object_ID><Name>buildCandidateRulesLookupTable</Name><Scope>Public</Scope><Type>void</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>1</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>0</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{BC2520AA-DB89-4280-ACE6-F6A8711EDC61}</ea_guid></Row><Row><OperationID>28</OperationID><Object_ID>273</Object_ID><Name>determineCandidateRulesForEdge</Name><Scope>Public</Scope><Type>CandidateRules</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>4</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>352</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{1070078F-FF2E-49ca-9432-2D50C026A0D6}</ea_guid></Row><Row><OperationID>29</OperationID><Object_ID>288</Object_ID><Name>eInvoke</Name><Scope>Public</Scope><Type>java.lang.Object</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>0</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>0</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{A1D00185-AE82-493e-AAAC-E916D2DD98D3}</ea_guid></Row><Row><OperationID>38</OperationID><Object_ID>240</Object_ID><Name>CREATE</Name><Scope>Public</Scope><Type>BindingOperator</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>4</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>115</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{42E99307-46D4-444b-886B-FBA399DF29F6}</ea_guid></Row><Row><OperationID>39</OperationID><Object_ID>240</Object_ID><Name>BACKWARD</Name><Scope>Public</Scope><Type>ApplicationTypes</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>5</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>272</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{D0F76449-7205-4f9c-A03D-C68F72A669C4}</ea_guid></Row><Row><OperationID>27</OperationID><Object_ID>165</Object_ID><Name>determineEntryNode</Name><Scope>Private</Scope><Type>TGGObjectVariable</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>2</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>128</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{12E442A3-491E-4dc2-9171-728084C3746F}</ea_guid></Row><Row><OperationID>30</OperationID><Object_ID>434</Object_ID><Name>invokeOperationWithSingleArg</Name><Scope>Public</Scope><Type>EObject</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>0</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>288</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{DDE51358-F82B-4100-A5D1-12154D533B41}</ea_guid></Row><Row><OperationID>31</OperationID><Object_ID>165</Object_ID><Name>deriveOperationalRules</Name><Scope>Public</Scope><Type>void</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>3</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>0</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{30584C3D-773E-4256-BBE9-4FD226E45814}</ea_guid></Row><Row><OperationID>32</OperationID><Object_ID>165</Object_ID><Name>createOperationalRules</Name><Scope>Private</Scope><Type>void</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>4</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>0</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{ED7EF05C-D74B-4a0f-897D-DB7612AC5AEB}</ea_guid></Row><Row><OperationID>35</OperationID><Object_ID>240</Object_ID><Name>determineOperationSignature</Name><Scope>Public</Scope><Type>EString</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>2</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>0</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{999096A0-B224-4446-A8D5-CB581BA2DD20}</ea_guid></Row><Row><OperationID>36</OperationID><Object_ID>165</Object_ID><Name>createPerformOperation</Name><Scope>Private</Scope><Type>Activity</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>5</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>95</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{3414F021-9221-4be2-A133-28E6DAA25ADD}</ea_guid></Row><Row><OperationID>37</OperationID><Object_ID>240</Object_ID><Name>convertDirectionToAppropriateDomain</Name><Scope>Public</Scope><Type>DomainType</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>3</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>198</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{E83E8FA4-1802-4a2a-AF6B-81D5E4BAB83A}</ea_guid></Row><Row><OperationID>40</OperationID><Object_ID>240</Object_ID><Name>FORWARD</Name><Scope>Public</Scope><Type>ApplicationTypes</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>6</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>272</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{403AA3D8-A275-4763-BB64-8BDF6425EA18}</ea_guid></Row><Row><OperationID>42</OperationID><Object_ID>165</Object_ID><Name>createIsAppropriateOperation</Name><Scope>Public</Scope><Type>Activity</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>6</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>95</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{15A6B03B-DDE5-479d-A3DE-FA2A05970DE1}</ea_guid></Row><Row><OperationID>43</OperationID><Object_ID>240</Object_ID><Name>CHECK_ONLY</Name><Scope>Public</Scope><Type>BindingOperator</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>7</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>115</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{16268928-5197-4269-8A3D-5251DD8AA7A6}</ea_guid></Row><Row><OperationID>44</OperationID><Object_ID>240</Object_ID><Name>BOUND</Name><Scope>Public</Scope><Type>BindingState</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>8</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>113</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{5529869A-FE95-489e-BB61-BB1F46EBAB87}</ea_guid></Row><Row><OperationID>45</OperationID><Object_ID>240</Object_ID><Name>UNBOUND</Name><Scope>Public</Scope><Type>BindingState</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>9</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>113</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{A3CFAA93-BE84-4602-BAC7-AF42DE44F4AE}</ea_guid></Row><Row><OperationID>46</OperationID><Object_ID>240</Object_ID><Name>SUCCESS</Name><Scope>Public</Scope><Type>EdgeGuard</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>10</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>104</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{41D81F5E-E224-4171-A7B5-08BAD5D650E3}</ea_guid></Row><Row><OperationID>47</OperationID><Object_ID>240</Object_ID><Name>FAILURE</Name><Scope>Public</Scope><Type>EdgeGuard</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>11</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>104</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{8D2A6AF2-70C9-4d51-ADF2-CBD72BE0D8C1}</ea_guid></Row><Row><OperationID>48</OperationID><Object_ID>240</Object_ID><Name>MANDATORY</Name><Scope>Public</Scope><Type>BindingSemantics</Type><ReturnArray>0</ReturnArray><IsStatic>0</IsStatic><Concurrency>Sequential</Concurrency><Abstract>0</Abstract><Synchronized>0</Synchronized><Pos>12</Pos><Const>0</Const><Pure>FALSE</Pure><Classifier>114</Classifier><IsRoot>FALSE</IsRoot><IsLeaf>FALSE</IsLeaf><IsQuery>FALSE</IsQuery><ea_guid>{ADB4946B-AAA6-4ead-97DE-476DE4406DC1}</ea_guid></Row></Data></Dataset_0></EADATA>\r\n";
        //s = File.ReadAllText("d:\\test.txt");
        //s = "<string>" + s + "</string>";
        List<String> returnVal = new List<string>();
        string rowName="Row";
        try
        {
            XElement x = XElement.Parse(xmlString);
            var rows=x.Descendants(rowName);
            foreach (var row in rows)
            {
                returnVal.Add(row.ToString().Replace("<" + rowName + ">", string.Empty).Replace("</" + rowName + ">", string.Empty).Replace("\r", string.Empty).Replace("\n", string.Empty).Replace(">  <", string.Empty));
            }
        }
        catch
        {
        }

希望這可以幫助!

代替使用正則表達式,添加此命名空間

using System.Xml.Linq;
using System.Xml.XPath;

接着:

 var x1 = XDocument.Parse(str);
 var rows = x1.XPathSelectElements("//Row");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM