Как проверить наличие несбалансированного набора скобок внутри узла?
Как проверить наличие любого несбалансированного набора скобок внутри узла, например, с помощью LINQ-to-XML
<?xml version="1.0"?> <root> <child1>Anything goes <a>(here</a>) and <bb>(there)</bb>!</child1> <child2>Whatever <a>goes (around)</a> <bb>comes around()</bb> and (<a>that is)</a> a fact.</child1> </root>
В приведенном выше примере xml узел
<a>(here</a>
содержит только открывающие скобки внутри узла, а закрывающие скобки находятся вне узла, в этом случае я хочу переставить эти открывающие скобки непосредственно перед узлом. <a>
узел как (<a>here</a>)
и та же логика для любого узла вроде (<a>that is)</a>
следует заменить следующим образом (<a>that is</a>)
и <a>goes (around)</a>
однако он должен оставаться неизменным, поскольку содержит полный набор открывающих и закрывающих скобок <bb>(there)</bb>
также следует изменить на (<bb>there</bb>)
поскольку и открывающие, и закрывающие скобки расположены непосредственно после и перед узлами.Кто-нибудь может помочь!!
Что я уже пробовал:
Честно говоря, я понятия не имею, как это сделать
XDocument xml = XDocument.Load(@"D:\test.xml"); var targetnodes=from x in xml.Descendants("a") where ????
Кроме того, вот некоторые другие типы для лучшего понимания
<bb>(statistical moments of the 1(st) - 4(th) (order))</bb>
(<bb>statistical moments of the 1(st) - 4(th) (order))</bb>
<bb>(statistical moments of the 1(st) - 4(th) (order)</bb>)
<bb>((statistical moments) of the 1(st) - 4(th) (order)</bb>)
должно быть
(<bb>statistical moments of the 1(st) - 4(th) (order)</bb>)
(<bb>statistical moments of the 1(st) - 4(th) (order)</bb>)
(<bb>statistical moments of the 1(st) - 4(th) (order)</bb>)
(<bb>(statistical moments) of the 1(st) - 4(th) (order)</bb>)