Найдено результатов: 3

Regex отклонение совпадений из-за Instr

Каков самый простой способ сделать функцию типа "instring" с помощью regex? Например, как я могу отклонить целую строку из-за наличия одного символа, такого как : ? Например:

  • this -хорошо
  • there:is - не в порядке из-за :

Более практично, как я могу сопоставить следующую строку:

//foo/bar/baz[1]/ns:foo2/@attr/text()

Для любого теста узла на xpath, который не включает пространство имен?

(/)?(/)([^:/]+) 

Будет соответствовать тестам узла, но включает префикс пространства имен, который делает его неисправным.

regex   xpath    

401   5   05:52, 12th August, 2020


XPath и пространства имен по умолчанию

Что стоит за XPath и поддержкой пространств имен? Разве XPath как спецификация предшествует пространствам имен? Если у меня есть документ, в котором элементам было дано пространство имен по умолчанию:

<foo xmlns="uri" />

Похоже, что некоторые из процессорных библиотек XPath не распознают //foo из-за пространства имен, а другие-нет. Моя команда думала о том, чтобы добавить префикс пространства имен с помощью регулярных выражений к XPath (вы можете добавить префикс пространства имен через XmlNameTable), но это кажется хрупким, поскольку XPath-такой гибкий язык, когда речь заходит о тестах узлов.

Есть ли стандарт, который применяется к этому?

Мой подход немного хаковат, но он, кажется, работает нормально; я удаляю объявление xmlns с помощью поиска / замены, а затем применяю XPath.

string readyForXpath = Regex.Replace(xmldocument, "xmlns=\".+\"", String.Empty );

Это справедливый подход или кто-то решил это по-другому?

c#   xml   xpath   namespaces    

648   5   20:55, 26th August, 2020


XPath и выбор одного узла

Я использую XPath в .NET для разбора документа XML, по следующим линиям::

XmlNodeList lotsOStuff = doc.SelectNodes("//stuff");

foreach (XmlNode stuff in lotsOStuff) {
   XmlNode stuffChild = stuff.SelectSingleNode("//stuffChild");
   // ... etc
}

Проблема заключается в том, что запрос XPath для stuffChild всегда возвращает дочерний элемент первого элемента stuff , а не rest. Может ли XPath не использоваться для запроса к отдельному XMLElement ?

.net   xpath    

433   4   01:13, 7th August, 2020